NestJS CLI全局安装报错及进程被终止问题求助
错误1:ENOTEMPTY 目录非空
npm ERR! code ENOTEMPTY npm ERR! syscall rename npm ERR! path /usr/local/lib/node_modules/@nestjs/cli npm ERR! dest /usr/local/lib/node_modules/@nestjs/.cli-seuz8ewr npm ERR! errno -39 npm ERR! ENOTEMPTY: directory not empty, rename '/usr/local/lib/node_modules/@nestjs/cli' -> '/usr/local/lib/node_modules/@nestjs/.cli-seuz8ewr'
这是因为npm在安装时需要重命名现有CLI目录为临时文件,但目标路径已存在非空目录,或者原CLI目录残留了未清理的文件,导致重命名操作失败。
解决步骤:
- 彻底删除旧的NestJS CLI目录:
rm -rf /usr/local/lib/node_modules/@nestjs/cli - 强制清理npm缓存,消除残留的安装状态:
npm cache clean --force
错误2:安装进程被Killed
Killed####⠂⠂⠂⠂⠂⠂⠂⠂⠂) ⠴ reify:fsevents: sill reify mark deleted [ '/usr/local/lib/node_modules/@nestjs/cli/node_modules/fseven
这个提示几乎都是系统内存不足导致的:npm处理依赖树(reify阶段)会占用大量内存,当系统剩余内存不足时,Linux的OOM Killer会直接终止占用内存过高的进程。
解决方法(任选其一):
- 临时创建swap分区补充内存(适合低内存服务器/虚拟机):
安装完成后可执行# 创建1GB swap文件 fallocate -l 1G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfileswapoff /swapfile && rm /swapfile移除swap文件。 - 改用内存占用更低的pnpm安装:
# 安装pnpm curl -fsSL https://pnpm.io/install.sh | sh - # 全局安装NestJS CLI pnpm add -g @nestjs/cli - 限制npm的内存使用上限:
npm i -g @nestjs/cli --max-old-space-size=512
操作顺序建议
先执行错误1的清理步骤,再用错误2的解决方法重新尝试安装,就能解决问题。
内容的提问来源于stack exchange,提问作者Eduardo Decena

