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

GitHub Actions发布npm包报错`<package>不在npm registry`如何解决?

报错原因

npm返回404不代表包真的不存在,出于隐私保护策略,当账号/令牌没有对应包的操作权限时,npm也会返回404状态码避免私有包被枚举。结合你本地可正常发布的情况,核心原因是GitHub Actions中使用的令牌权限、工作流配置存在问题,常见触发场景如下:

  • actions/setup-node未显式指定npm官方源,CI环境默认源匹配异常
  • 生成的npm Automation token权限不足,或未开启2FA豁免
  • GitHub仓库中存储的npm_token密钥配置错误,值不匹配
  • 未显式指定包的公开访问权限,npm默认按私有包校验触发权限拦截
修复方案
  1. 修正工作流配置,显式指定Node版本和npm官方源,公开包可添加--access public参数避免权限校验问题,修改后完整配置如下:
name: Publish package on npm

on:
  release:
    types: [created]

jobs:
  publish-npm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '16' # 替换为你项目实际使用的Node.js版本
          registry-url: 'https://registry.npmjs.org/'
      - run: npm ci
      - run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}
  1. 校验npm令牌配置
    登录npm官网进入访问令牌管理页,确认你生成的是Automation类型的令牌,而非普通Publish类型;如果你的账号开启了双重验证,需确认Automation令牌已开启2FA豁免权限,支持CI环境免验证发布。
  2. 校验GitHub密钥配置
    进入对应GitHub仓库的「Settings - Secrets and variables - Actions」页面,确认存储的npm_token值和npm官网生成的令牌完全一致,无多余空格、换行符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:45:08