3

我正在做一个相当复杂的 Require 项目;这个项目的核心是一个第三方视频播放器代码库,我们正在围绕它构建一个应用程序。我目前正在使用 Require 优化器制定我们的生产构建过程。

优化器效果很好,但是当我将应用程序与“内置”JS 一起使用时,Require 坚持通过插入额外的脚本标签来加载第三方模块。我搜索了编译后的 JS 并确认该模块已包含在构建中;但它似乎在运行时无法识别。

这个模块是需要第三方模块的:

define(['models/Widget','amp_lib'], function(Widget) {
    // Housekeeping/configuration
    // Nothing to return here
})

模块 amp_lib 在主配置中定义:

require.config({
    paths: {
        amp_lib: 'path/to/module/src'
    }
});

谁能帮助我了解 Require 如何确定是否已加载特定模块?我整天都在 Require 本身中四处寻找,希望找出这个决定是在哪里做出的,但无济于事。

4

1 回答 1

0

如上所述:

我今天发现了问题。结果我们得到的第三方模块使用了一些实用程序库,其中一个符合 AMD 标准,因此在检测到加载程序时有自己的 define() 函数。因此,在构建时,优化器只是将该库定义为模块,而不是整个代码库,这反过来又导致模块在运行时重新加载。经验教训:小心将第三方的东西塞进 Require 项目。

于 2014-02-06T20:10:02.120 回答