npm安装Electron快速启动项目失败:pinkie-promise@2.0.2版本缺失
解决electron-quick-start安装时pinkie-promise找不到的问题
我之前也碰到过这个糟心的情况——pinkie和pinkie-promise这俩包确实已经从npm官方仓库下架了,所以不管是直接npm安装还是手动塞文件夹都没用,npm会校验依赖链的完整性,找不到上游的pinkie包就会报错。给你几个实用的解决办法:
方法1:用npm overrides替换依赖(推荐)
如果你的npm版本在8.3以上,直接在项目的package.json里加个overrides字段,把pinkie-promise替换成功能完全兼容的es6-promise就行:
{ "overrides": { "pinkie-promise": "npm:es6-promise@^4.2.8" } }
保存之后重新跑:
npm install
npm会自动把所有依赖pinkie-promise的地方替换成es6-promise,API完全一致,不会影响Electron项目的正常运行。
方法2:切换到旧版electron-quick-start
如果你的项目不需要最新的Electron特性,不如直接切到一个依赖还没失效的旧版本,比如v12.0.0版本的electron-quick-start:
# 先清掉当前项目的依赖和锁文件 rm -rf node_modules package-lock.json # 克隆指定版本的项目 git clone -b v12.0.0 https://github.com/electron/electron-quick-start.git cd electron-quick-start npm install
这个版本的依赖链里没有用到下架的pinkie系列包,安装起来很顺畅。
方法3:手动修改依赖锁文件(不推荐)
要是你非得用当前版本的项目,可以试着手动修改package-lock.json,把所有涉及pinkie和pinkie-promise的条目都替换成es6-promise的信息,然后执行:
npm install --force
不过这个方法比较麻烦,很容易改错依赖链,实在没办法再用这个。
另外,如果你确实需要特定版本的pinkie文件夹,只能试试从其他开发者的本地缓存或者npm历史快照里找,但这类非官方来源的包有安全风险,谨慎使用。
内容的提问来源于stack exchange,提问作者bormat
相关产品推荐
相关产品推荐

