npm 发布的 github 操作失败

obs*_*ver 10 npm-publish github-actions

目标

我已手动将开源库发布到registry.npmjs.org,并且我希望将来的版本能够使用GitHub Actions 自动发布。我之前没有 GitHub 操作的经验。

到目前为止我做了什么

我已将标准 GitHub 操作放入 GitHub 为此目的提供的存储库中(未更改)。在最后一行中,它从npmjs.com获取自动化令牌,我已在存储库上将其定义为环境机密NPM_TOKEN。它显示在存储库的秘密页面中。

我面临错误

Run npm publish
...
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in.
npm ERR! need auth You need to authorize this machine using `npm adduser`

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2022-01-08T00_20_52_834Z-debug.log
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

尽管进行了大量的网络搜索,但我还是不明白

  • 有没有办法验证自动化令牌是否已被拾取?
  • 为什么 npmpublish require npm adduser,这是否表明自动化令牌尚未被正确拾取?毕竟,该操作是在我无法执行的 CI 节点上执行的npm login。并且该npm-publish.yml文档或其文档没有显示需要提供用户详细信息以进行身份​​验证的提示。

Ton*_*lek 6

我做了一些努力并遇到了类似的问题。考虑以下几点:

  1. 在 npmjs.com 创建秘密令牌时,选择 accessToken 类型作为自动化选项,不要发布以绕过 2FA,否则将无法工作。
  2. 将 npm 创建的 accessToken 秘密添加到 github 时:我发现进入设置 > 秘密,有两种方法可以添加秘密:在环境中或存储库中。向环境添加秘密是行不通的。您需要将其添加为存储库机密;请参阅附图。 快照添加存储库机密
  3. 确认secrets中的secret名称与YML文件匹配。

  • 你拯救了我的夜晚,现在我可以睡觉了\o/ (2认同)