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

 更新时间:2024年07月01日 14:15:10   作者:Mr__proto__  
这篇文章主要介绍了vite打包优化分片打包依赖包,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

在开发Vue3项目时,我们使用vite进行构建,由于项目中开发的是地图大屏项目,依赖较多

为了提高用户体验减少用户等待的时间,对此进行优化:

拆分打包的方法

// 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

再进行截取就行了

这回就没有超级大的包了。。。。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue项目部署在Spring Boot出现页面空白问题的解决方案

    Vue项目部署在Spring Boot出现页面空白问题的解决方案

    这篇文章主要介绍了Vue项目部署在Spring Boot出现页面空白问题的解决方案,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • vue element upload组件 file-list的动态绑定实现

    vue element upload组件 file-list的动态绑定实现

    这篇文章主要介绍了vue element upload组件 file-list的动态绑定实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Vue如何进行数据代理

    Vue如何进行数据代理

    这篇文章主要介绍了vue如何进行数据代理,通过本文学习我们了解如何代理的及验证两条线的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • element validate验证函数不执行的原因分析

    element validate验证函数不执行的原因分析

    这篇文章主要介绍了element validate验证函数不执行的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • vue3引入highlight.js进行代码高亮的方法实例

    vue3引入highlight.js进行代码高亮的方法实例

    最近忙着开发自己的开发脚手架,在做代码生成器的时候,有个预览功能,需要让代码高亮,下面这篇文章主要给大家介绍了关于vue3引入highlight.js进行代码高亮的相关资料,需要的朋友可以参考下
    2022-04-04
  • element-ui使用el-date-picker日期组件常见场景分析

    element-ui使用el-date-picker日期组件常见场景分析

    最近一直在使用 element-ui中的日期组件,所以想对日期组件常用的做一个简单的总结,对element-ui el-date-picker日期组件使用场景分析感兴趣的朋友一起看看吧
    2024-05-05
  • vue3  mark.js 实现文字标注功能(案例代码)

    vue3  mark.js 实现文字标注功能(案例代码)

    这篇文章主要介绍了vue3  mark.js 实现文字标注功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • vue中v-model和响应式的实现原理解析

    vue中v-model和响应式的实现原理解析

    这篇文章主要介绍了vue中v-model和响应式的实现原理,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 关于ElementUI el-table 鼠标滚动失灵的问题及解决办法

    关于ElementUI el-table 鼠标滚动失灵的问题及解决办法

    这篇文章主要介绍了关于ElementUI el-table 鼠标滚动失灵的问题及解决办法,本文给大家分享问题所在原因及解决方案,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Vue3关于响应式数据类型详解(ref、reactive、toRef、及toRefs)

    Vue3关于响应式数据类型详解(ref、reactive、toRef、及toRefs)

    这篇文章主要介绍了Vue3关于响应式数据类型(ref、reactive、toRef、以及toRefs),本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01

最新评论