这是我的索引页面(索引视图)。
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']
}
})
现在当我查看我的捆绑文件时。有'模型/登录'代码显示我twise。因为它在两个视图中都使用(例如,IndexView和LoginView)。在我的情况下意味着我看到相同的代码(LoginModel)重复。因为我的捆绑大小增加不必要。我该如何避免这种情况?
感谢
答案 0 :(得分:0)
将通用/共享代码作为requirejs中的单独模块是一种很好的做法。这样您就可以将它们从indexview和loginview中排除,并将其作为单独的模块加载,无论先加载哪个加载。是的,你现在必须再做一个额外的http请求。我通常有大量的常用代码,这种方法对我很有用。