打开VS Code时构建Angular项目报ELIFECYCLE errno 137,关闭即可解决,原因是什么?
问题根因
ELIFECYCLE 错误搭配 errno: 137 的核心触发原因是系统内存不足(OOM,Out of Memory):Node.js 执行 Angular 构建任务时占用的内存超过了当前系统剩余可用内存,被系统的 OOM Killer 机制强制终止,就会抛出该错误,终端进程直接退出。
退出 VS Code 后就能正常构建的原因很明确:VS Code 本身以及安装的各类插件(尤其是 Angular 项目常用的 Angular Language Service、ESLint 实时校验、Git 状态检测等插件)会持续占用大量内存,挤压了 Node 构建进程可使用的内存空间。关闭 VS Code 后这部分内存被释放,Node 就能拿到足够的内存完成全量构建。
可行的优化方案
- 手动调高 Node 进程的可用内存上限,执行构建命令时添加内存参数,示例如下:
node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build
其中8192代表给 Node 分配 8G 内存,可根据设备总内存大小灵活调整数值。 - 平时使用时关闭 VS Code 中不常用的高内存占用插件,或者执行构建前暂时禁用这类实时校验、实时提示类插件,减少额外内存开销。
- 如果经常遇到同类内存不足问题,最彻底的解决方式是升级设备的物理内存。
- 如果是在 WSL 环境下执行构建,可手动调整 WSL 分配的内存上限,避免子系统可用内存不足导致构建被终止。
内容的提问来源于stack exchange,提问作者js-newb
相关产品推荐
相关产品推荐

