我正在开发一个需要多个第三方库的单页应用程序。为了减少构建时间,我尝试创建两个单独的包:一个用于库代码,一个用于应用程序代码。我的构建过程使用 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
}
}
}
这成功地创建了两个单独的捆绑包,并且在页面上包含捆绑包后我的应用程序正常运行。但是,我注意到 Backbone 和 Handlebars 都包含在 libs.js 包和 app.js 包中,而我原本希望它们只包含在 libs.js 包中。知道我做错了什么吗?