Webpack:从入口和子块中提取常见模块以分离公共块

时间:2017-12-07 13:15:25

标签: javascript webpack code-splitting commonschunkplugin

我有一个使用webpack构建的应用程序,它使用代码分割。我现在想要将所有符合特定条件的常见模块(在本例中为node_modules)聚合到所有条目块所有子块(通过代码拆分生成)到一个单独的公共块中。

如果我这样做:

new webpack.optimize.CommonsChunkPlugin({
    children: true,
    async: 'vendor',
    minChunks: (module) => {
        const isVendor = module.context.split('/').some(dir => dir === 'vendor');
        return isVendor;
    },
}),

Webpack会将与minChunks函数匹配的所有模块聚合到一个单独的公共块中,但仅适用于来自子块的模块 - 它不会将模块从条目块聚合到公共块中。结果,我有重复的模块出现在我的入口块和公共块中。

这怎么可能?

示例:https://github.com/OliverJAsh/webpack-commons-vendor/blob/f524bfdb0e047161c453a6b84f89ab6d25d6c648/webpack.config.js

enter image description here

1 个答案:

答案 0 :(得分:5)