【Vue3】vite打包报错:块的大小超过限制,Some chunks are larger than 500kb after minification

vite打包时报了超出大小限制的黄色警告

解决方法:

1.更改限制,在build里扩展chunkSizeWarningLimit,就不会有黄色警告了
chunkSizeWarningLimit: 1500
2.自定义构建,调整底层的 Rollup 选项

https://cn.vitejs.dev/guide/build.html

RollUp相关文档:

https://rollupjs.org/configuration-options/#output-manualchunks

https://www.rollupjs.com/guide/tutorial

output.manualChunks
Type:    { [chunkAlias: string]: string[] } | ((id: string, {getModuleInfo, getModuleIds}) => string | void)
output: {
        manualChunks(id) {
            //打印所有资源
          console.log('id:',id)
        }
      }

rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            console.log('id:'+ id)
            return 'bags';
          }
        }
      }
    }

所有依赖会装入到bags,所以bags大小会大很多

3.自定义分类分隔
rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            console.log('before', id)
            console.log('after', id
            .toString()
            .split('node_modules/')[1]
            .split('/')[0]
            .toString())
            return id
              .toString()
              .split('node_modules/')[1]
              .split('/')[0]
              .toString()
          }
        }
      }
    }

打包后的文件数量多了,每个文件大小小很多

chunkFileNames输出静态资源的命名
chunkFileNames: (chunkInfo) => {
          console.log('chunkInfo', chunkInfo)
          console.log('facadeModuleId',chunkInfo.facadeModuleId)
          //分隔自己项目的文件
          const facadeModuleId = chunkInfo.facadeModuleId
            ? chunkInfo.facadeModuleId.split('/')
            : []
          return `js/${facadeModuleId[facadeModuleId.length - 2] || '[name]'}/[name].[hash].js`
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值