关于vite项目内存溢出无法正常打包的问题
问题
在vite+ts+vue3
项目中时pnpm run build
构建项目导致无法正常打包
解决思路
排查问题时发现禁用router
插件后能正常打包,禁用掉则会导致溢出。
进一步发现是因为.vue
文件过多的原因。
考虑到可能是nodejs默认的内存不够,增大内存试试。增加到24GB后可以成功打包。
项目继续开发一个月后添加了不少.vue
文件,遂又不能打包。
百度没有找到问题。
中文互联网搜索这个问题 全是说nodejs的内存不够,但是我已经增加到24GB后还无效。猜测不断增加内存是能解决这个问题的,但只能治标不能治本,同时打包时间越来越长,需要从根本上解决这个问题。
由于使用了自动生成路由的插件vite-plugin-pages
,会不会是这个插件问题?
排查源码发现没有问题。
于是拿之前其他项目所用的插件package.json
和现在项目进行对应的插件版本进行替换,项目就能成功打包。
对插件版本进行排查后,发现是unocss
插件的问题
问题原因
根据插件 issues#1931
unocss
插件的版本bug,修改配置后就能构建成功,原因可能是插件的相关图标问题,没有进一步研究。
presetIcons()plugins: [UnoCSS({presets: []})]
// @unocss/preset-icons
查看相关版本的changelog可以得知,在版本v0.47.1-0.47.3
中会出现该问题
解决办法
直接解决:
- 增大内存,同时增大nodejs的使用内存 ( 插件
fix-memory-limit
),但随着vue文件的增大还是会导致问题的再次出现。 - 禁用
unocss
插件的图标
根本解决:
- 将
unocss
回退到v0.46.5
版本以前能解决问题(只要版本号不是在v0.47.1-0.47.3
应该就可以,博主是将unocss
回退到v0.46.2
版本)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步