Ubuntu系统VS Code执行npm install报ENOTEMPTY错误解决方法
Ubuntu 环境 npm install 触发 ENOTEMPTY 报错排查方案
错误核心原因
npm 执行依赖安装时,需要将项目内旧的 node_modules/npm 目录重命名为 .npm-xxxx 格式的临时缓存目录,两种情况会触发该报错:
- 目标临时目录存在之前中断安装留下的残留文件
- 之前混用普通用户、sudo 权限执行 npm 命令,导致
node_modules目录、npm 缓存目录的权限混乱,npm 没有足够权限完成重命名、删除操作
解决步骤
按顺序执行以下操作,全程不要额外加 sudo 执行 npm 相关命令,除非步骤里明确标注:
- 进入项目根目录
cd /home/protons/Desktop/NH_Facility_Portal_V0 - 清理项目内残留的依赖文件、临时安装文件,因为之前用 sudo 生成过 root 权限的文件,删除时需要临时加 sudo:
sudo rm -rf node_modules sudo rm -f package-lock.json - 清理 npm 缓存并修复权限,解决之前混用 sudo 导致的缓存目录权限问题:
# 清理普通用户npm缓存,修复缓存目录所有者为当前登录用户 npm cache clean --force sudo chown -R $USER:$USER ~/.npm # 清理root用户下的npm残留缓存 sudo npm cache clean --force
注意:日常前端开发中不要用 sudo 执行 npm 依赖安装命令,sudo 会让生成的文件所有者变为 root,普通用户后续运行 npm 时会因为没有读写权限触发各类文件操作报错。
- 关闭所有正在占用项目目录的程序,包括打开了该项目的 VS Code、运行中的 node 服务、文件管理器窗口,避免文件被占用导致重命名失败。
- 用普通用户权限重新执行依赖安装命令:
npm install --legacy-peer-deps
仍报错的补充排查项
- 执行
df -h检查项目所在磁盘分区的剩余空间,若剩余空间不足 1G,先清理磁盘留出足够空间再重试 - 若再次提示重命名失败,直接手动删除所有 npm 生成的临时目录后重试:
rm -rf node_modules/.npm-* - 如果使用nvm管理node版本,检查当前node版本是否与项目要求的版本匹配,版本不兼容也可能触发安装流程异常
内容的提问来源于stack exchange,提问作者prasad vara
相关产品推荐
相关产品推荐

