我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vite2打包的时候vendor-xxx.js文件过大的解决方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vite2打包的时候vendor-xxx.js文件过大的解决方法

vite2是一个非常好用的工具,只是随着代码的增多,打包的时候 vendor-xxxxxx.js 文件也越来越大,这就郁闷了。

打包时遇到警告

输出文件名字/static/vendor.9b5698e4.js 806.03kb / brotli: skipped (large chunk)

Some chunks are larger than 500kb after minification. Consider:

  • Using dynamic import() to code-split the application
  • Use build.rollupOptions.output.manualChunks to improve chunking: rollup.js
  • Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.

由于打包时有些依赖包体积过于庞大,提示你进行配置分割;

https://rollupjs.org/guide/en/#outputmanualchunks

寻找解决方案

(好吧,官网是英文的,看不懂)
于是到网上找了一下,发现了一种解决方法。https://www.jb51.net/article/241486.htm

  module.exports = {
    build: {
      rollupOptions: {
          output:{
              manualChunks(id) {
                if (id.includes('node_modules')) {
                    return id.toString().split('node_modules/')[1].split('/')[0].toString();
                }
            }
          }
      }
    }
  }

尝试了一下,确实可以分成多个文件,但是问题又来了,分成的文件有大有小,大文件可以接受,但是一堆几k的小文件看着就烦了,于是又想了想,发现可以这样。

   build: {
      sourcemap: true,
      outDir: 'distp', //指定输出路径
      assetsDir: 'static/img/', // 指定生成静态资源的存放路径
      rollupOptions: {
        output: {
          manualChunks(id) {
            if (id.includes('node_modules')) {
              const arr = id.toString().split('node_modules/')[1].split('/')
              switch(arr[0]) {
                case '@kangc':
                case '@naturefw':
                case '@popperjs':
                case '@vue':
                case 'axios':
                case 'element-plus':
                  return '_' + arr[0]
                  break
                default :
                  return '__vendor'
                  break
              }
            }
          },
          chunkFileNames: 'static/js1/[name]-[hash].js',
          entryFileNames: 'static/js2/[name]-[hash].js',
          assetFileNames: 'static/[ext]/[name]-[hash].[ext]'
        },
        brotliSize: false, // 不统计
        target: 'esnext', 
        minify: 'esbuild' // 混淆器,terser构建后文件体积更小
      }
    },

思路

按照模块分开打包,大模块独立打包,小模块合并打包,这样就不会出现一大堆小文件了。

补充

经过不断尝试发现,@kangc(@kangc/v-md-editor)也就是md的编辑器不能单独打包,会报错。
还有 axios 也不能单独打包,会报错。

 if (id.includes('node_modules')) {
              const arr = id.toString().split('node_modules/')[1].split('/')
              switch(arr[0]) {
                case '@naturefw': // 自然框架
                case '@popperjs':
                case '@vue':
                case 'element-plus': // UI 库
                case '@element-plus': // 图标
                  return '_' + arr[0]
                  break
                default :
                  return '__vendor'
                  break
              }
            }

这几个可以分开打包,其他的遇到再说。

到此这篇关于vite2打包的时候vendor-xxx.js文件过大的解决方法的文章就介绍到这了,更多相关vite2打包vendor-xxx.js文件过大内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vite2打包的时候vendor-xxx.js文件过大的解决方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vite2打包的时候vendor-xxx.js文件过大如何解决

这篇文章主要介绍“vite2打包的时候vendor-xxx.js文件过大如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vite2打包的时候vendor-xxx.js文件过大如何解决”文章能帮
2023-06-29

使用uniapp打包微信小程序时主包和vendor.js过大解决(uniCloud的插件分包)

每个使用分包小程序必定含有一个主包,所谓的主包,即放置默认启动页面/TabBar页面,以及一些所有分包都需用到公共资源/JS脚本,下面这篇文章主要给大家介绍了关于使用uniapp打包微信小程序时主包和vendor.js过大解决的相关资料,,需要的朋友可以参考下
2023-02-21

screw Maven插件方式运行时在编译打包时跳过执行的问题解决方法

这篇文章主要介绍了screw Maven插件方式运行时在编译打包时跳过执行的问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-22

node-webkit打包成exe文件被360误报木马的解决方法

最近项目需要用到node-webkit。处理古老级用户的兼容以及他们心里的‘数据安全'问题。 1、下载完node-webkit 2、制作appName.nw文件 3、copy /b nw.exe+appName.nw TestAppNam
2022-06-04

Win7复制大文件时突然崩溃的可行解决方法

Win7在复制大文件的过程中,相信很多朋友都有遇到系统突然崩溃的问题,这种情况出现时总会让很多人惊出一身冷汗,特别是程序显示“未响应”时,那真是一点补救的方法都没有,因此为了防止这种情况的发生,我们应当事先做一些工作
2023-06-11

screw Maven插件方式运行时在编译打包时跳过执行的问题如何解决

今天小编给大家分享一下screw Maven插件方式运行时在编译打包时跳过执行的问题如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
2023-07-05

编程热搜

目录