我正在研究一个相当复杂的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如何确定某个模块是否已加载?我一整天都在寻求自己的需求,希望找出这个决定的地方,但无济于事。
答案 0 :(得分:0)
如上所述:
我今天发现了这个问题。事实证明我们得到的第三方模块是使用一些实用程序库,其中一个是兼容AMD的,因此在检测到加载程序时有自己的define()函数。因此,在构建时,优化器只将该库定义为模块,而不是整个代码库,这反过来导致模块在运行时重新加载。获得的经验教训:小心将第三方内容填充到Require项目中。