需要加载模块,即使它包含在构建中

时间:2013-05-21 21:08:53

标签: debugging requirejs dependency-management duplicate-removal

我正在研究一个相当复杂的Require项目;该项目的核心是第三方视频播放器代码库,我们正在构建一个应用程序。我目前正在使用Require optimizer进行生产构建过程。

优化器工作得很好,但是当我使用带有“内置”JS的应用程序时,要求通过插入额外的脚本标记来坚持加载第三方模块。我搜索了已编译的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如何确定某个模块是否已加载?我一整天都在寻求自己的需求,希望找出这个决定的地方,但无济于事。

1 个答案:

答案 0 :(得分:0)

如上所述:

  

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