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