2013-11-02 89 views
0

这是我的索引页(索引视图)。捆绑重复源文件

define([ 
    'model/login' 
    'view/login' 
], function (LoginModel, loginview) { 
    return Backbone.View.extend({ 
    initialize: function() { 
     this.model = LoginModel; 
     } 
    someMethod: function() { 
     new loginview();  
     } 
    }); 
}) 

这是我的另一个登录页面(登录视图)。

define([ 
    'model/login' 
], function (LoginModel) { 
    return Backbone.View.extend({ 
    initialize: function() { 
     this.model = LoginModel; 
     } 
    }); 
}) 

现在我创建使用以下配置一个包:

({ 
    appDir: "./", 
    baseUrl: "./", 
    mainConfigFile: './main.js', 
    dir: './jsbuilt', 
    //urlArgs: "v" + (new Date()).getTime(), 
    //urlArgs: "v2", // "cache=v2", 
    //fileExclusionRegExp: /^(r|indexpage)\.js$/, 
    preserveLicenseComments: false, 
// wrap: { 
//  start: "(function() {", 
//  end: "}());" 
// }, 
    wrap: true, 
    optimize: "uglify2", 
    modules: [ 
     { 
      name: "main" 
     }, 
     { 
      name: "basejs/indexpage", 
      exclude: ['main'] 
     } 
}) 

现在,当我CHACK我的包文件。有'模型/登录'代码显示我twise。成为它在两个视图中使用(例如,IndexView以及LoginView)。在我的情况意味着我看到相同的代码(LoginModel)重复。在那里我的捆绑包大小增加不必要。我如何避免这种情况?

感谢

回答

0

这是一个很好的做法,具有公共/共享代码作为requirejs单独的模块。因此,您可以将它们从indexview和loginview中排除,并将其作为单独的模块加载,无论哪个加载优先。是的,你现在必须再做一个额外的http请求。我通常有大量的通用代码,这种方法对我来说很好。