如何在 webpack 2.0 中将库移动到供应商bundle



在我获得的一个项目中,我有一个main.js文件,该文件在网站上共享,这就是为什么他们在其中包含外部依赖项bootstrap.js的原因。

主.js

window.jQuery = window.$ = require('jquery');
$(document).ready(function () {
    require('./components/menu')();
    //other components
});
require('./thirdparty/bootstrap');
require('./components/spinner');

./第三方/引导程序

// import '../../../../../../../node_modules/bootstrap/js/src/alert';
// import '../../../../../../../node_modules/bootstrap/js/src/button';
import '../../../../../../../node_modules/bootstrap/js/src/carousel';
import '../../../../../../../node_modules/bootstrap/js/src/collapse';
// import '../../../../../../../node_modules/bootstrap/js/src/dropdown';
import '../../../../../../../node_modules/bootstrap/js/src/modal';
// import '../../../../../../../node_modules/bootstrap/js/src/popover';
import '../../../../../../../node_modules/bootstrap/js/src/scrollspy';
import '../../../../../../../node_modules/bootstrap/js/src/tab';
// import '../../../../../../../node_modules/bootstrap/js/src/tooltip';

我正在尝试使用此项目设置 webpack,并希望将此供应商依赖项(即引导程序(移动到一个单独的块中,因为它不会经常更改。因此,我添加了一个新的"供应商"条目,如下所示

module.exports = [{
    name: 'js',
    entry: {
        main : './src/main.js',
        vendor : ['jquery', 'bootstrap']
        //other entries
    },
    output: {
        path: './dist',
        filename: '[name].js'
    },
    module: {
        loaders: [ /*loaders like babel */ ]
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: 'vendor',
            minChunks: Infinity,
            filename: '[name].[chunkhash].js'
        }),
    ]
}];

当我运行 webpack 构建时,构建生成得很好,我的项目工作正常,但我在 2 个不同的块中复制了引导程序,即在 main.jsvendor.js 中。

我认为通过在供应商中声明bootstrap,webpack 选择了引导node_modules并将其包含在供应商.js中。

现在,我所需的 webpack 输出是,仅将 ./thirdparty/bootstrap js 文件中存在的引导组件移动到供应商块。

有可能做到吗?

我通过指定供应商中想要的确切依赖项来解决它。

['jquery', './node_modules/bootstrap/js/src/carousel.js',
'./node_modules/bootstrap/js/src/collapse.js', './node_modules/bootstrap/js/src/modal.js',
'./node_modules/bootstrap/js/src/scrollspy.js', './node_modules/bootstrap/js/src/tab.js'
];

指定确切的引导 js 后,我需要解决我的重复性问题。

相关内容

最新更新