-
这里对optimization中的代码抽离配置进行简单说明
-
首先看一下配置条件,有多个入口文件,入口文件分别对公共的JS文件进行调用,为了避免重复打包,还可以作为缓存文件来优化
-
在src目录下index.js和other.js文件分别对util1.js和util2.js进行引用,所以util1和util2可以被单独的抽离出来
-
接下来对webpack的optimization属性进行配置
let path = require('path')
let CleanWebpackPlugin = require('clean-webpack-plugin')module.exports ={mode:'development',entry:{index:'./src/index.js',other:'./src/other.js'},output:{filename:'[name].js',path:path.resolve(__dirname,'dist')},... ...optimization:{splitChunks:{cacheGroups:{common:{chunks:'initial',minSize:0,minChunks:2}}}}
}
-
minSize是用来设置公共代码的最小字节,超过这个数值就会被抽离
-
minChunks是用来设置被引用多少次才进行抽离
-
如果多个文件同时引用第三方依赖库,需要单独抽离出第三方依赖库需要在optimization做一下配置
optimization:{splitChunks:{cacheGroups:{common:{chunks:'initial',minSize:0,minChunks:2},vendor:{priority:1,test:/node_modules/,chunks: 'initial',minSize: 0,minChunks: 2}}}}
- vendor属性配置就是对第三方依赖的单独抽离配置
- priority用来配置处理的优先级,这里如果不配置,将会和不是第三方依赖的文件打包在一起
- test是表示依赖的文件来自于哪里
-
vendor文件就是第三方依赖的抽离文件