You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Action执行npm ci遇EINTEGRITY校验失败问题求助

解决GitHub Action中npm ci的EINTEGRITY及tarball损坏问题

可行解决方案

  • 禁用npm缓存执行ci:在GitHub Action的npm ci命令中添加--no-cache参数,跳过缓存直接下载完整包,避免读取损坏的缓存文件:
    npm ci --no-cache
    
  • 替换gitpkg依赖方式:
    • 优先使用npm官方发布的正式包,替换gitpkg链接:
      "@next-auth/adapter-test": "^4.24.7",
      "@next-auth/tsconfig": "^0.1.0"
      
    • 若需使用仓库子目录代码,改用Git子模块替代gitpkg:
      1. 本地添加子模块:
        git submodule add https://github.com/nextauthjs/next-auth.git ./submodules/next-auth
        
      2. 在package.json中引用本地子目录:
        "@next-auth/adapter-test": "file:./submodules/next-auth/packages/adapter-test",
        "@next-auth/tsconfig": "file:./submodules/next-auth/packages/tsconfig"
        
  • 更新package-lock.json:本地执行npm install重新生成lock文件,确保文件内的校验和与当前包的实际值一致,提交更新后的package-lock.json到仓库后再触发Action。

问题根源

  1. gitpkg动态生成tarball的不稳定性:gitpkg会实时从Git仓库子目录生成tarball提供下载,GitHub Action环境的网络波动或gitpkg服务临时异常,可能导致下载的tarball数据不完整,进而触发EINTEGRITY校验失败和损坏警告。
  2. GitHub Action的npm缓存残留:默认启用的npm缓存可能保留了之前下载失败的损坏tarball,后续执行ci时直接读取缓存,导致错误重复出现。

内容的提问来源于stack exchange,提问作者Roeland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:23:14