我正在开发一个需要多个第三方库的单页应用。为了减少构建时间,我正在尝试创建两个单独的bundle:一个用于libs代码,另一个用于app代码。我的构建过程使用grunt-browserify来生成包。这是我的browserify任务(我正在使用grunt-load-tasks来模块化我的Grunt任务):
var libs = [
'backbone',
'backbone-relational',
'backbone.babysitter',
'backbone.wreqr',
'bootstrap',
'bootstrap-growl',
'handlebars',
'jquery',
'marionette',
'underscore'
];
module.exports = {
options: {
external: libs
},
libs: {
src: [],
dest: './build/js/libs.js',
options: {
external: null,
require: libs
}
},
app: {
src: ['./frontend/js/app.coffee'],
dest: './build/js/app.js',
options: {
browserifyOptions: {
debug: true,
extensions: ['.coffee'],
},
watch: true
}
}
}
这成功创建了两个单独的包,并且在页面上包含包后我的应用程序正常运行。但是我注意到,当我希望它们只包含在libs.js包中时,libs.js包和app.js包中都包含Backbone和Handlebars。知道我做错了吗?