Debugging 即使模块';它包含在构建中

Debugging 即使模块';它包含在构建中,debugging,requirejs,dependency-management,duplicate-removal,Debugging,Requirejs,Dependency Management,Duplicate Removal,我正在做一个相当复杂的项目;这个项目的核心是一个第三方视频播放器代码库,我们正在围绕它构建一个应用程序。我目前正在使用Require优化器制定生产构建流程 优化器工作得很好,但是当我使用带有“build”JS的应用程序时,Require坚持通过插入额外的脚本标记来加载第三方模块。我已经搜索了编译好的JS,并确认模块包含在构建中;但它似乎在运行时无法识别 此模块需要第三方模块: define(['models/Widget','amp_lib'], function(Widget) { /

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

优化器工作得很好,但是当我使用带有“build”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中四处寻找,希望找出这个决定是在哪里做出的,但毫无结果。

如上所述:

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


这是否仅适用于第三方模块?第三方模块是否返回值?另外,您确定它没有在其他地方使用不同的路径引用吗?e、 g.:“模块/放大器库”。你能分享演示吗?恐怕我不能真正分享演示…但是,这里有一些额外的信息:第三方模块的内容会有所不同。如果我用如下内容替换内容:'(function(){return null;}());'然后Require不重新加载模块。我想我要做的是把它发布给第三方开发者;他们本周在我们办公室协调这个项目。起初我认为这与他们无关,但现在我想知道我们是否可以找出他们(相当大的)代码库的哪一部分可能导致了这个问题。更新:我今天发现了这个问题。事实证明,我们得到的第三方模块使用了几个实用程序库,其中一个是AMD兼容的,因此当它检测到加载程序时,它有自己的define()函数。因此,在构建时,优化器只将该库定义为模块,而不是整个代码库,这反过来会导致在运行时重新加载模块。经验教训:小心将第三方的东西塞进需要的项目中。