默认值
默认情况下,SplitChunksPlugin
只会影响到按需加载的 chunks
。
webpack
将根据以下条件自动拆分 chunks
:
- 新的 chunk 可以被共享,或者模块来自于 node_modules 文件夹
- 新的 chunk 体积大于 20kb(在进行 min+gz 之前的体积)
- 当按需加载 chunks 时,并行请求的最大数量小于或等于 30
- 当加载初始化页面时,并发请求的最大数量小于或等于 30
module.exports = {//...optimization: {splitChunks: {chunks: 'async',minSize: 20000, // 分割代码应满足的最小体积minRemainingSize: 0,minChunks: 1,maxAsyncRequests: 30, // 按需加载时并行加载的文件的最大数量maxInitialRequests: 30, // 入口点的最大并行请求数enforceSizeThreshold: 50000, // 设置强制执行拆分的体积阈值为 50000B,同时会忽略其他限制(minRemainingSize,maxAsyncRequests,maxInitialRequests)cacheGroups: {defaultVendors: {test: /[\/]node_modules[\/]/,priority: -10, // 拆分的权重reuseExistingChunk: true, // 如果当前 chunk 包含已从主 bundle 中拆分出的模块,则它将被重用,而不是生成新的模块},default: {minChunks: 2,priority: -2