Github 操作:找不到 NPM 发布 404

问题描述 投票:0回答:3

在我的 github 项目中,我试图自动创建一个新版本,并在有内容被推送到 master 分支时将其发布到 NPM。

想法

  1. 创建一个新的次要版本
  2. 发布包到 NPM

我正在使用 github 动作。我的工作流程文件如下所示:

# This workflow will run tests using node and then publish a package to the npm registry when a release is created
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages

name: Node.js Package

on:
#trigger on every commit to the main branch
  push:
    branches:
      - main
      - master 

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 12
      - run: npm test

  publish-npm:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org/
      - run: git config user.name $GITHUB_ACTOR
      - run: git config user.email gh-actions-${GITHUB_ACTOR}@github.com
      - run: git remote add gh-origin https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git
      - run: echo "//registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN" >> ~/.npmrc
      - run: npm version patch
      - run: npm publish
      - run: git push gh-origin HEAD:master --tags
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

(https://github.com/ether/ep_align/actions/runs/322527776)

我在发布时一直收到 404 错误。我不明白,因为包在这里在线:https://www.npmjs.com/package/ep_align

npm ERR! code E404
npm ERR! 404 Not Found - PUT https://registry.npmjs.org/ep_align - Not found
npm ERR! 404 
npm ERR! 404  '[email protected]' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

这个问题让我发疯了几个小时,我不知道它可能是什么。 有什么想法吗?

npm continuous-integration github-actions building-github-actions
3个回答
6
投票

这只是您的令牌的身份验证问题。

你有没有在你的

Repository secrets
中设置访问令牌? (您可能还想创建环境。)

https://docs.npmjs.com/creating-and-viewing-access-tokens

或者这也可能是授权问题。请检查您的令牌类型。它应该是自动化的。

这是我的例子 > https://github.com/canberksinangil/canberk-playground

我在存储库设置下设置令牌的地方。


1
投票

NODE_AUTH_TOKEN 令牌附加到错误的步骤,因此

npm publish
没有身份验证。你需要:

  - run: npm publish
    env:
      NODE_AUTH_TOKEN: ${{secrets.npm_token}}
  - run: git push gh-origin HEAD:master --tags
      GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

此外,请确保此处环境变量 (

npm_token
) 的大小写与 GitHub 操作设置中的匹配。环境变量区分大小写。


0
投票

以下是对我有帮助的内容:

  • .github/workflows/publish.yml
    确保引用
    registry-url
    字段

    ...
    - uses: actions/setup-node@v3
            with:
              node-version: 18
              registry-url: 'https://registry.npmjs.org'
    ...
    
  • .npmrc
    确保包括
    always-auth=true

    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    registry=https://registry.npmjs.org/
    save-exact=true
    progress=false
    package-lock=true
    always-auth=true
    
© www.soinside.com 2019 - 2024. All rights reserved.