GitHub Action执行npm ci报nice-napi not accessible from piscina如何解决
问题根因
该错误是npm 7+版本的依赖树严格校验逻辑触发的兼容性问题,你未修改代码却突然失效,是因为GitHub Action的ubuntu-latest运行器镜像定期更新,Node 12对应的内置npm版本升级到了存在该问题的版本,和你项目里的package-lock.json依赖结构不兼容。
排查&解决方案
方案1:锁定CI环境的npm版本为6.x(最适配Node 12)
在setup-node步骤后、npm ci前增加npm版本锁定的步骤:- uses: actions/setup-node@master with: node-version: 12 # 新增以下步骤 - run: npm install -g npm@6 - run: npm ciNode 12官方匹配的npm大版本为6,不会出现该依赖解析错误,且和你项目的依赖兼容性最高。
方案2:增加npm ci的兼容参数
如果你不想降级npm版本,直接将npm ci改为npm ci --legacy-peer-deps,绕过npm 7+的严格依赖树校验规则,即可正常安装。本地校验方法
你可以在本地将npm升级到和CI环境相同的版本,删除node_modules后执行npm ci复现问题,确认修复方案生效后再提交Action配置修改。兜底验证方案
临时将Action中的npm ci替换为npm install,如果能正常运行,即可确认是package-lock.json和npm版本不匹配的问题,优先选择上述两个方案处理即可。
内容的提问来源于stack exchange,提问作者davide dimola
相关产品推荐
相关产品推荐

