老版webpack中集成的plugin为 CommonsChunkPlugin ,但是在webpack4b版本就废弃了,从webpack v4开始,CommonsChunkPlugin删除了,而改为optimization.splitChunks。
module.exports = {optimization: {splitChunks: {cacheGroups: {vendor: {name: "vendor",test: /[\\/]node_modules[\\/]/,chunks: "all",priority: 10 // 优先级},common: {name: "common",test: /[\\/]src[\\/]/,minSize: 1024,chunks: "all",priority: 5}}}},};
这里我配置了两个缓存组,即 vendor 和 common
vendor: 抽取来自node_modules文件夹下的第三方代码,优先级权重为10common: 抽取来自src文件夹下的代码,优先级权重为5vendor比common的优先级权重高,所以先提取vendor,再提取common在入口文件引用的第三方文件(这里我用了
lodash来测试)被打包到vendor.js- 在入口文件引用到的公共文件(这里我用了自己写的util.js)被打包到
common.js
注意
这里还需要注意的是,公共引用的css文件,本来我是用了extract-text-webpack-plugin插件抽取到单独的文件,因为css文件也有公共引用,所以也被 SplitChunksPlugin 插件抽取成公共模块打包到了common.css文件_
