2

我正在开发一个需要多个第三方库的单页应用程序。为了减少构建时间,我尝试创建两个单独的包:一个用于库代码,一个用于应用程序代码。我的构建过程使用 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 包中。知道我做错了什么吗?

4

0 回答 0