我使用带有RequirejS的Backbonejs来创建应用程序并使用 Grunt作为构建工具。使用grunt task" grunt-requirejs"生成缩小文件。
之后我实施了MarionetteJs使用牵线木偶模块,在应用程序中实现了牵线木偶模块后,问题开始在Grunt构建过程中发生。当我使用缩小的文件运行应用程序时,我收到错误
"uncaught Error: undefined missing modules/main/mainApp"
mainApp.js是我的主要模块,它将管理其他模块。
代码段 app.js -
define([ 'marionette' ], function(Marionette) {
var MainApplication = new Marionette.Application();
MainApplication.on("start", function(){
if(Backbone.history){
require(['modules/main/mainApp'], function (MainApp) {
Backbone.history.start();
MainApp.start();
});
}
});
return MainApplication;
}
我搜索了很多关于这个问题但没有找到具体解决方案。
我是否必须包含任何其他任务来缩小牵线木偶文件?
我也想出了这个blogpost,这会混淆是否使用了带有Marionette模块的Requirejs。
检查牵线木偶文件的任何建议/方法都会缩小并且正常工作会非常有用。
修改 添加了代码段。
答案 0 :(得分:0)
我得到了解决方案。它只是简单地为优化任务添加了一个选项。
在我的笨拙任务中
requirejs: {
compile: {
options: {
findNestedDependencies: true,
// Edited for brevity
}
}
},
我添加了findeNestedDependencies : true
,它实际上拾取了嵌套的依赖项。
我从David Sulc的书中获得了RequireJS,BackboneJS和Marionette的参考。在本书中,他使用RequireJS优化器优化了应用程序,然后在build.js文件中找到了该属性。