config.optimization.splitChunks({
chunks: 'all', // 僅提取按需載入的module
minSize: 30000, // 提取出的新chunk在兩次壓縮(打包壓縮和服務(wù)器壓縮)之前要大于30kb
maxSize: 100000, // 提取出的新chunk在兩次壓縮之前要小于多少kb,默認(rèn)為0,即不做限制
minChunks: 1, // 被提取的chunk最少需要被多少chunks共同引入
maxAsyncRequests: 5, // 最大按需載入chunks提取數(shù)
maxInitialRequests: 3, // 最大初始同步chunks提取數(shù)
automaticNameDelimiter: '~', // 默認(rèn)的命名規(guī)則(使用~進(jìn)行連接)
name: true,
cacheGroups: { // 緩存組配置,默認(rèn)有vendors和default
vendors: {
test: /[\\/]node_modules[\\/]/,
minChunks: 5,
priority: 10,
reuseExistingChunk: true
},
default: {
minChunks: 2,
priority: -20,
reuseExistingChunk: true
}
}
})
//maxChunks:使用大于或等于 1 的值,來限制 chunk 的最大數(shù)量。使用 1 防止添加任何其他額外的 chunk,這是因?yàn)閑ntry/main chunk 也會(huì)包含在計(jì)數(shù)之中。
//minChunkSize: 設(shè)置 chunk 的最小大小。
//在合并 chunk 時(shí),webpack 會(huì)嘗試識(shí)別出具有重復(fù)模塊的 chunk,并優(yōu)先進(jìn)行合并。任何模塊都不會(huì)被合并到 entry chunk 中,以免影響初始頁面加載時(shí)間。
config.plugin('chunkPlugin').use(webpack.optimize.LimitChunkCountPlugin,[{
maxChunks: 50, // 必須大于或等于 1
minChunkSize: 10000
}])
chunk-vendors.xxx.js 1417KB 文件過大

微信圖片_20211223162515.png
通過拆分打包顯示多個(gè)js文件

微信圖片_20211223164907.png