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

GitHub Action自动发布NPM包失败求助:404错误排查

问题排查与解决方案

核心问题定位

你的错误本质是NPM发布请求未携带有效授权信息,NPM Registry为了保护包的权限状态,会以404(而非更直观的403)响应未授权请求,这是官方的权限保护策略。

工作流配置修复

你的GitHub Action存在两个关键问题:

  1. env配置缩进错误,导致NODE_AUTH_TOKEN未传递给npm publish命令
  2. 重复执行npm ci,无意义且浪费构建资源

修复后的完整工作流

# NPM Publish is the name for this action
name: NPM Publish

# This action will trigger on every release get created
on:
  release:
    types: [created]

# Job will run on a ubuntu instance
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: "16.X"
          registry-url: https://registry.npmjs.org/
          # 直接将token配置到setup-node,更简洁可靠
          node-auth-token: ${{ secrets.NPM_SECRET }}
      - run: npm ci
      - run: npm test
      # 发布到NPM
      - run: npm publish --access public

如果倾向保留原结构,只需修正env的缩进(必须与run同级):

# (前面步骤省略)
      - run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_SECRET }}

额外排查步骤

  • 验证NPM Token权限:登录NPM官网进入「Access Tokens」页面,确认NPM_SECRET对应的token拥有Publish权限,且关联账号是react-lightbox-js包的拥有者或协作者。
  • 核对版本号:确保仓库package.json的version字段与GitHub Release的版本号完全一致(错误中显示为1.2.1),避免发布已存在的版本。
  • 本地模拟测试:在本地执行npm login后,运行npm publish --access public --dry-run,确认是否能正常模拟发布,排查是否是本地包配置或账号权限问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:55:06