执行npm install报git dep preparation failed错误如何解决?
错误原因
- 核心冲突来自
devDependencies中配置的git来源依赖@types/ramda: github:types/npm-ramda:该git仓库的包需要在安装时执行prepublish钩子完成构建,但其内置的构建依赖(旧版gulp、ts-node)和你当前使用的Node 14.17.6版本不兼容,触发Node底层的上下文断言错误,导致进程抛出SIGABRT信号终止。 - 你之前尝试的清缓存、强制安装都没有解决兼容性根因,因此无效。
可行解决方案
按优先级排序:
方案1(最推荐,无兼容风险)
替换git来源的@types/ramda为npm官方发布的稳定匹配版本:
- 修改package.json中
devDependencies里的@types/ramda配置,将"@types/ramda": "github:types/npm-ramda"改为"@types/ramda": "^0.27.1",和你项目中已安装的ramda@0.27.1版本完全匹配 - 删除项目根目录下的
node_modules文件夹、package-lock.json文件(如有yarn.lock也一并删除) - 重新执行安装命令:
npm install --legacy-peer-deps即可
方案2(必须使用git来源@types/ramda时可选)
两种二选一即可:
- 降级Node版本到12.x LTS:该版本的Node API兼容
@types/ramdagit包的构建脚本,降级后重新执行安装命令即可 - 安装时跳过所有脚本钩子:执行
npm install --legacy-peer-deps --ignore-scripts,该方案仅适合临时测试,若其他依赖依赖安装钩子完成初始化可能会出现运行异常
方案3(补充排查)
如果上述方案未生效,可降级npm大版本到6.x规避npm 7的peer依赖处理逻辑bug:
- 执行
npm install -g npm@6全局安装npm 6.x版本 - 重复方案1的第2、3步骤即可
内容的提问来源于stack exchange,提问作者1Mojojojo1
相关产品推荐
相关产品推荐

