前言
事情是这样的,刚入职的时候,打包时间只有6分钟左右,也没有想着要进行打包优化,毕竟这是一个陈年老项目,能跑就不要去动他,就这样顺利的度过了一年。
然而,随着项目的不断完善,功能越来越多,代码也越来越复杂,打包时间也逐渐从6分钟变成了12分钟。
现在每次打包更新都让我感到绝望,因为稍有问题,就得重新打包,又得等待12分钟,这段时间,我一直在思考如何优化打包过程,减少等待时间。于是,我想到了让Trae来试一试。
我相信,凭借他的能力,一定能找到打包慢的原因,并且给出优化打包时间的方案,让我们的打包工作效率再次提升。
首先,让Trae先分析一波,他先执行npm run vite:report

主要的原因是打包第三方插件比较大

给出的建议是按需导出、代码分割,这些手段都是常见的vite打包优化

应该还有原因,看了打包报告,应该是svg插件和Vue组件的原因,直接告诉Trae,看看他会怎么优化
还是先让他统计一下vue组件数量以及svg的数量,这样我们才知道是不是对的,只有方向对了, 才可以对症下药,打包优化并不是盲目的将所有的打包手段用上,有时候会适得其反,反而打包时间更加长

还真的是数量庞大,处理起来肯定很慢,那怎么处理?
既然无法去掉组件和svg的数量,那是不是可以开启vite多线程打包,为了验证是不是可以这样操作,先看看vite官方文档,然后再要求Trae去这样做,避免Trae出现幻觉,胡乱优化
项目是最新的vite,Vite 5.x原生支持多线程构建,但需要检查Node.js版本和启用相关配置,Trae也开始了检查package.json中的Node多线程

非常贴心的给出对应的快速打包脚本
很好嘛,打包时间瞬间提升到4分钟42秒

总结
以下是Trae的优化,性能提升预期和所使用的技术,还有使用的电脑配置建议,Trae还是很强的
性能提升预期
- 构建时间 :减少30-50%
- 内存使用 :更高效的多线程内存管理
- 并行处理 :支持最多8个并行文件操作
技术细节
- esbuild并行压缩 :启用多线程压缩
- Rollup并行处理 : maxParallelFileOps: 8
- 构建缓存 :启用 node_modules/.vite 缓存
- 代码分割 :更精细的chunk分割策略
使用建议
- 开发环境 :继续使用 npm run vite:dev
- 生产构建 :使用 npm run vite:build-fast 获得最佳性能
- 内存充足 :在16GB+内存机器上效果更明显