config.optimization.splitChunks({
chunks: 'all', // 对所有的包进行拆分。三个值:"initial" 初始化,"all"(默认就是all),"async"(动态加载)
maxInitialRequests: Infinity, // 无限大。入口的最大并行请求数,默认3
minSize: 0, // 形成一个新代码块最小的体积,只有 >= minSize 的bundle会被拆分出来。默认值是30kb
cacheGroups: {
// 拆分第三方库
vendor: {
test: /[\\/]node_modules[\\/]/,
name(module) {
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1] // 获取第三方包名
return `npm.${packageName.replace('@', '')}` // npm 软件包名称是 URL 安全的,但是某些服务器不喜欢@符号
},
priority: 10, // 优先级,用来判断打包到哪个里面去。数字越大表示优先级越高
},
// 拆分elementUI
elementUI: {
name: 'chunk-elementUI', // split elementUI into a single package
test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
priority: 20,
},
// 拆分指定文件
commons: {
name: 'chunk-commons',
test: resolve('src/components'), // can customize your rules
minChunks: 3, // 模块被引用几次以上的才抽离。 表示在分割前,可被多少个chunk分享的最小值
reuseExistingChunk: true, // 表示是否使用已有的chunk,true表示不会重新生成新的,即几个chunk复用被拆分出去的一个module
priority: 30,
},
},
})
webpack配置:拆分打包
最新推荐文章于 2025-07-28 20:08:35 发布
该文章详细介绍了Webpack的配置优化,特别是splitChunks选项用于代码拆分的设置,包括对所有包的处理,最大并行请求数,最小体积限制等。它还展示了如何针对第三方库如ElementUI以及自定义组件进行拆分,通过设置优先级和条件来优化项目构建。
3160

被折叠的 条评论
为什么被折叠?



