https://webpack.docschina.org/plugins/split-chunks-plugin/#splitchunks-cachegroups
config.optimization = {splitChunks:{chunks:'all',//async 对异步代码分割 all 对同步和异步代码分割minSize: 300000,//当引入的模块大于30kb才会做代码分割maxSize: 0,//当引入的模块大于maxSize时,会尝试对引入的模块进行二次拆分,一般不用配置minChunks: 1,//当一个模块被至少引入1次,才会做代码分割maxAsyncRequests: 5,//当引入模块10个时,只会将前5个模块进行打包maxInitialRequests: 3,//入口文件引入的模块如果超过3个,只会将前3个模块做代码分割automaticNameDelimiter: '~',//文件连接符name: true,//拆分块的名称,让cacheGroups里面的名字有效cacheGroups:{com:{filename:'[name].js',priority:2,//有限权,当一个模块都符合cacheGroups分组条件,将按照优先权进行分组,priority值越大,优先权越高// reuseExistingChunk:true},}//对符合代码拆分的模块进行一个分类}}
拆分分组
const optimization = {
splitChunks:{
chunks:'all',
name:true,
cacheGroups:{
vendor: {
name: 'chunks-vendor',
test: /[\\/]node_modules[\\/](vue|moment|react|react-dom)[\\/]/,
chunks: 'all',
minSize: 200000,
maxSize: 200000,
priority: 20
},
// commons: {
// test: /[\\/]node_modules[\\/]/,
// name: 'vendors',
// chunks: 'all'
// },
lodash: {
name:'chunks-lodash',
test (module) {
return /lodash/.test(module.context)
},
chunks: 'all',
// minChunks:1,
priority:12
}
}
}
}
