Single Optimized Module在RequireJS中返回Undefined

时间:2014-11-05 18:55:00

标签: javascript requirejs load amd shim

在使用r.js优化AMD模块及其依赖关系后,我收到此错误....

  

未捕获的TypeError:undefined不是函数

如果我加载未经优化的AMD模块并让requirejs动态加载其所有依赖项,那么它可以正常工作。

以下是我加载模块的方法......

require(['jquery', "templates/mainmodule"],
    function ($, mainmodule) {

        var mainModuleObject = new mainmodule();

}

正确检索主模块及其依赖项(我使用Fiddler看到它),但是当我尝试实例化它时,主模块是未定义的。我的配置映射是正确的,Underscore和jquery的垫片也很好。不使用Backbone。有所有非AMD模块的出口。控制台中没有出现模块加载错误。

关于我如何排除故障的想法?

1 个答案:

答案 0 :(得分:1)

烧掉了8个小时来解决这个令人难以置信的愚蠢问题。

要求JS Optimizer将为您的模块动态创建模块ID。当你指定" name"和" out"对于要优化的模块,以及优化模块的名称," name"应该是模块文件路径WITHOUT" .js"在末尾。 "列"应该有" .js"在末尾。如果你包括" .js"在您正在优化的模块的文件路径的末尾,它会将该后缀添加到模块ID,无论出于何种原因,模块ID会终止整个执行,而不会出现任何类型的错误,指示模块ID问题。天哪。