問題現象: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