问题现象:
迁移到webpack4:使用webpack.optimize.CommonsChunkPlugin插件提取公共代码时候,
报错:webpack4 Error: webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead;
正确配置方案:
(1)在config,js 文件中 optimization与entry/plugins同级
optimization: {
splitChunks: {
cacheGroups: {
commons: {
name: "commons",
chunks: "initial",
minChunks: 2
}
}
}
},
(2)解释说明:
可以自己设置一组一组的cacheGroup来配对应的共享模块
commons里面的name就是生成的共享模块bundle的名字
chunks 有三个可选值,”initial”, “async” 和 “all”. 分别对应优化时只选择初始的chunks,所需要的chunks 还是所有chunks 。
minChunks 是split前,有共享模块的chunks的最小数目 ,默认值是1, 但我看示例里的代码在default里把它重写成2了,从常理上讲,minChunks = 2 应该是一个比较合理的选择