在使用r.js优化AMD模块及其依赖关系后,我收到此错误....
未捕获的TypeError:undefined不是函数
如果我加载未经优化的AMD模块并让requirejs动态加载其所有依赖项,那么它可以正常工作。
以下是我加载模块的方法......
require(['jquery', "templates/mainmodule"],
function ($, mainmodule) {
var mainModuleObject = new mainmodule();
}
正确检索主模块及其依赖项(我使用Fiddler看到它),但是当我尝试实例化它时,主模块是未定义的。我的配置映射是正确的,Underscore和jquery的垫片也很好。不使用Backbone。有所有非AMD模块的出口。控制台中没有出现模块加载错误。
关于我如何排除故障的想法?
答案 0 :(得分:1)
烧掉了8个小时来解决这个令人难以置信的愚蠢问题。
要求JS Optimizer将为您的模块动态创建模块ID。当你指定" name"和" out"对于要优化的模块,以及优化模块的名称," name"应该是模块文件路径WITHOUT" .js"在末尾。 "列"应该有" .js"在末尾。如果你包括" .js"在您正在优化的模块的文件路径的末尾,它会将该后缀添加到模块ID,无论出于何种原因,模块ID会终止整个执行,而不会出现任何类型的错误,指示模块ID问题。天哪。