Error:webpack.optimize.CommonsChunkPlugin has been removed

背景

问题描述

报错内容

Error: webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead

复现

问题是项目在升级了webpack到v4.0.0后,打包生产环境文件,报错走不下去。
至于CommonsChunkPlugin的作用和用法,参考这篇博客《详解CommonsChunkPlugin的配置和用法》

CommonsChunkPlugin主要是用来提取第三方库和公共模块,避免首屏加载的bundle文件或者按需加载的bundle文件体积过大,从而导致加载时间过长,着实是优化的一把利器。

解决办法

  1. build/webpack.base.conf.js文件
  • 增加如下代码,与resolve,output平级
optimization: {
  splitChunks: {
    cacheGroups: {
      commons: {
        name: 'commons',
        chunks: 'initial',
        minChunks: 2
      }
    }
  }
}
  • 注释一行代码:new webpack.optimize.CommonsChunkPlugin('common.js')
plugins: [
  // new webpack.optimize.CommonsChunkPlugin('common.js'),
  new webpack.ProvidePlugin({
    $:"jquery",
    jQuery:"jquery"
  })
]