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

首次创建NPM包:自动升级版本及同步GitHub问题求助

问题排查与修复方案

核心问题分析

  • 发布目标Registry错误:当前工作流把包发布到了GitHub Packages(registry-url: https://npm.pkg.github.com/),而非你预期的官方NPM Registry(npmjs.com)。如果你的目标是npmjs,这是首要问题。
  • 版本更新逻辑混乱且未同步仓库:重复执行npm version命令,先拉远程版本覆盖本地再打patch,完全没必要;而且用了--no-git-tag-version,不会把package.json的版本变更提交到Git仓库,导致GitHub上的文件没更新。
  • 权限不足:工作流设置了contents: read,没有写入仓库内容的权限,就算后续加了提交步骤也推不回去。
  • 发布认证变量错误:npm publish认的是NODE_AUTH_TOKEN,不是你写的credentials,这会导致认证异常,发布可能没真正生效。

修复后的工作流配置

根据你的需求(自动升版本到目标Registry + 更新GitHub仓库的package.json),分两种场景给出配置:

场景1:发布到官方NPM Registry

on: 
  push:
    branches:
      - main
      
jobs:
  publish:
    runs-on: ubuntu-latest
    permissions:
      contents: write  # 必须开写入权限才能更新仓库
      packages: write
    steps:
      - uses: AutoModality/action-clean@v1
      - uses: actions/checkout@v4  # 升级到最新版,兼容性更好
        with:
          ref: 'main'
          fetch-depth: 0
          persist-credentials: false  # 避免默认权限冲突
          
      - uses: actions/setup-node@v4
        with:
          node-version: 20  # Node12已停更,换LTS版本20或18
          registry-url: https://registry.npmjs.org/  # 官方NPM地址
          scope: "@nandhirajan-tfi"
          
      - run: npm install
      - run: npm run build  # 原命令npm build是错的,要加run
      
      # 配置Git身份,升级patch版本并提交变更
      - run: |
          git config user.name "GitHub Actions"
          git config user.email "actions@github.com"
          npm version patch -m "[RELEASE] %s"
          
      # 把版本变更推回GitHub仓库
      - run: git push origin main --tags
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
          
      # 发布到官方NPM
      - run: npm publish
        env: 
          NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}  # 要在GitHub Secrets里配置NPM的访问令牌

场景2:发布到GitHub Packages

如果确实要发布到GitHub的包仓库,只需要修改setup-node和发布部分:

# 替换setup-node步骤
- uses: actions/setup-node@v4
  with:
    node-version: 20
    registry-url: https://npm.pkg.github.com/
    scope: "@nandhirajan-tfi"

# 替换发布步骤
- run: npm publish
  env: 
    NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

额外注意事项

  • NPM_TOKEN配置:如果发官方NPM,要去NPM官网生成带publish权限的访问令牌,然后加到GitHub仓库的Secrets里,命名为NPM_TOKEN。
  • 脚本检查:确保package.json的scripts里有build字段,不然npm run build会报错。
  • Git身份:必须配置用户名和邮箱,否则GitHub Actions没法提交代码变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:55:30