vite build 跑到一半进程直接消失,终端只留下一个 Killed,重跑几次都停在同一个 chunk。日志里能对上时间点,这种反而好排。
多个 chunk 并行压缩时内存叠加,容器或系统按上限把 node 进程杀掉,代码本身并没有写错。这一点先确认清楚,后面就不用反复试。
// vite.config.js
export default { build: { minify: 'esbuild', sourcemap: false } }
NODE_OPTIONS=--max-old-space-size=4096 npx vite build
「vite 构建内存」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
处理上按这个顺序:先关掉生产 source map 减少一轮内存;临时调大 node 老生代上限;把压缩交给更省内存的 esbuild。
结果对不对很好判断,构建能完整跑完,进程不再被系统杀掉,产物正常生成。
