我有一个使用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
函数匹配的所有模块聚合到一个单独的公共块中,但仅适用于来自子块的模块 - 它不会将模块从条目块聚合到公共块中。结果,我有重复的模块出现在我的入口块和公共块中。
这怎么可能?
答案 0 :(得分:5)
您需要创建一个包含所有常用库的webpack DLL。
https://webpack.js.org/plugins/dll-plugin/
如何设置它的示例可以在React-Boilerplate中找到。
这是示例的配置。
https://github.com/react-boilerplate/react-boilerplate/blob/master/internals/config.js