vite打包优化分片打包依赖包

在开发Vue3项目时,我们使用vite进行构建,由于项目中开发的是地图大屏项目,依赖较多,为了提高用户体验减少用户等待的时间,对此进行优化:

1.本文主要说的是拆分打包的方法:

//  vite.config.ts

output: {
          // 配置rollup输出选项
          // Static resource classification and packaging//静态资源分类打包
          chunkFileNames: 'assets/js/[name]-[hash].js', //代码块文件名
          entryFileNames: 'assets/js/[name]-[hash].js', //入口文件名
          assetFileNames: 'assets/[ext]/[name]-[hash].[ext]', // 资源文件名
 
          manualChunks(id) {
            if (id.includes('node_modules')) {
              return id
                .toString()
                .split('node_modules/')[1]
                .split('/')[0]
                .toString()
            }
          },
        },

解释:1

chunkFileNames 代码块文件名,统一放到assets/js/目录下

entryFileNames 入口文件名,统一放到assets/js/目录下

assetFileNames 资源文件名,统一放到assets/js(jpg/png/ttf/css等)/目录下

解释:2

manualChunks 此配置内进行分包,进行分离带三方依赖

上述拆分方式是自动将所有的包都单独拆分出来,优点就是不用手动配置,但是也有缺点,就是有的第三方包体积很小,会拆分出大量文件,反而降低请求效率

踩坑:

当项目使用pnpm进行管理包的时候再进行打包就会打出一个非常大的.pnpm包,这就不符合我们的预期了,我们要的就是小一点的包来进行本地缓存

 还不知道怎么解决,目前就是不使用pnpm就恢复正常了,如果有大神知道怎么解决希望能留一下言

-------------------------------------------------我是分割线-----------------------------------------------------------------

已经找到解决方法,但是这种打包拆分的方法也不是很好,缺点就是拆分的颗粒度太小,分包太多也是会降低速度的

 build: {
      outDir: 'dist',
      minify: 'esbuild',
      // 禁用 gzip 压缩大小报告,可略微减少打包时间
      reportCompressedSize: false,
      // 规定触发警告的 chunk 大小
      chunkSizeWarningLimit: 2000,
      rollupOptions: {
        //配置rollup
        output: {
          // 配置rollup输出选项
          // Static resource classification and packaging//静态资源分类打包
          chunkFileNames: `assets/js/[name]-${visonInfo}-[hash].js`, //代码块文件名
          entryFileNames: `assets/js/[name]-${visonInfo}-[hash].js`, //入口文件名
          assetFileNames: `assets/[ext]/[name]-${visonInfo}-[hash].[ext]`, // 资源文件名
          manualChunks(id) {
            if (id.includes('node_modules')) {
              //使用pnpm打包
              return id.toString().split('node_modules/')[2].split('/')[0].toString()
            }
          },
        },
      },
    },

简单的说就是,找的位置不对,直接找到.pnpm文件下的插件文件下的node_modules文件夹下,就对了,例如:

/Users/li/project/gongsi/vue3_flow_monitoring/node_modules/.pnpm/@antv+algorithm@0.1.26/node_modules/@antv/algorithm/lib/structs/queue.js?commonjs-exports

再进行截取就行了

这回就没有超级大的包了

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值