通过grunt缩小文件后,Marionette Modules丢失了

时间:2014-08-19 14:00:26

标签: requirejs gruntjs marionette

我使用带有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。

检查牵线木偶文件的任何建议/方法都会缩小并且正常工作会非常有用。

修改 添加了代码段。

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。它只是简单地为优化任务添加了一个选项。

在我的笨拙任务中

requirejs: {
            compile: {
                options: {
                    findNestedDependencies: true,
                    // Edited for brevity
                }
            }
        },

我添加了findeNestedDependencies : true,它实际上拾取了嵌套的依赖项。 我从David Sulc的书中获得了RequireJS,BackboneJS和Marionette的参考。在本书中,他使用RequireJS优化器优化了应用程序,然后在build.js文件中找到了该属性。