webpack配置:拆分打包

该文章详细介绍了Webpack的配置优化,特别是splitChunks选项用于代码拆分的设置,包括对所有包的处理,最大并行请求数,最小体积限制等。它还展示了如何针对第三方库如ElementUI以及自定义组件进行拆分,通过设置优先级和条件来优化项目构建。
 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,
          },
        },
      })
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值