执行npm install报ENOTEMPTY错误,尝试多种方案2小时未解决
ENOTEMPTY错误修复方案
1. 清理npm缓存与残留临时文件
残留的全局缓存、node_modules下的隐藏临时目录是触发重命名冲突的核心原因,在项目根目录执行以下命令:
# 强制清理npm全局缓存 npm cache clean --force # 删除本地依赖目录、锁定文件 rm -rf node_modules package-lock.json # 删除node_modules下npm生成的临时隐藏目录 rm -rf node_modules/.* 2>/dev/null # 清理日志文件 rm -rf ~/.npm/_logs/*
2. 规避npm 7.x版本的已知bug
你使用的npm 7.20.3属于迭代测试阶段版本,存在依赖安装逻辑bug,会自动安装冗余传递依赖、触发重命名冲突,使用以下任意一种方案即可解决:
- 安装时添加legacy-bundling参数,关闭默认的依赖提升逻辑:
npm install --legacy-bundling - 在项目根目录新建
.npmrc文件,写入以下配置,之后执行普通npm install即可生效:legacy-bundling=true - 直接降级到长期稳定的npm 6.x版本,彻底规避版本bug:
npm install -g npm@6
3. 验证依赖链路(可选)
如果需要确认abbrev包的引入来源,执行以下命令可输出完整依赖关联:npm ls abbrev
如果输出无关联结果,即可确认是npm版本bug导致的冗余安装,完成上述操作后问题会完全解决。
内容的提问来源于stack exchange,提问作者m ihsan
相关产品推荐
相关产品推荐

