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

如何通过Github Action将Npm包发布到自定义JFrog Artifactory

问题排查与方案说明

你当前的实现方案逻辑正确,无需使用第三方Action即可完成Npm包到JFrog Artifactory的发布,返回401错误属于鉴权配置不匹配问题,可按以下步骤排查修复:

常见配置错误排查

  • 检查ARTIFACTORY_URL变量值是否正确:必须填写JFrog npm仓库的完整地址,格式为https://[你的JFrog域名]/api/npm/[目标npm仓库名],不能仅填写JFrog根域名
  • 检查secrets.NPM_TOKEN存储的值是否正确:需填写JFrog平台生成的Identity Token,不能使用Web UI登录密码、公开npm平台token或Artifactory API Key
  • 检查JFrog侧账号权限:确认Token所属的用户账号对目标npm仓库有发布/写入权限,只读权限会直接返回401
  • 检查JFrog安全配置:确认JFrog没有设置IP白名单限制,GitHub Action公共Runner的IP不在白名单中也会触发鉴权失败

可选加固配置

如果排查基础配置后仍报错,可跳过actions/setup-node的自动鉴权配置,手动生成.npmrc文件确保鉴权信息正确写入:

publish:
    name: Publish the Packages
    needs: build
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: ${{ env.NODE_VERSION }}

      - name: 写入.npmrc鉴权配置
        run: |
          echo "registry=${{ env.ARTIFACTORY_URL }}" > .npmrc
          echo "${{ env.ARTIFACTORY_URL }}/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc
          echo "always-auth=true" >> .npmrc
        working-directory: ${{ env.CORE_WORKING_DIR }}

      - name: Publish Packages
        run: npm publish
        working-directory: ${{ env.CORE_WORKING_DIR }}

如果需要调试鉴权配置,可在发布步骤前添加配置校验步骤:

- name: 校验npm配置
  run: |
    npm config get registry
    npm config list
  working-directory: ${{ env.CORE_WORKING_DIR }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:01