从GitHub软件包注册表安装公共npm软件包

6

1.我在组织仓库中发布了一个公共包。
仓库链接:https://github.com/JX3BOX/jx3box-config/packages/141887

2.我想从另一个仓库安装这个包。 我已经在package.json中设置了依赖项。

"dependencies": {
    "@jx3box/jx3box-config": "^1.0.3",

我创建了一个名为.npmrc的文件,并设置:

@jx3box:registry=https://npm.pkg.github.com

3.当我使用Github Actions进行构建时,出现了错误

Running build scripts... npm install && npm run build
npm ERR! code E401
npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry"

这意味着也许我需要进行身份验证,但这是一个公共软件包。那它也需要进行身份验证吗?

4.现在我需要在文件.npmrc中添加一行,就像这样:

//npm.pkg.github.com/:_authToken=<mytoken>

但是我该如何在操作中设置它呢? 或者因为这是一个公共包,我怎样才能不需要任何授权?


非常感谢! ^_^


你能分享更多信息以便他人能够重现你的问题吗? - Nico Haase
我尝试修改 .npmrc 文件并定义令牌,它可以工作。但我认为这不是一个合适的方式。 - iRuxu
非常抱歉,我确实查看了相关的GitHub文档。但是我认为可能还有其他方法,或者文档尚未更新。非常感谢。 - iRuxu
2个回答

3
这个问题可能已经解决,但仍然发布此帖子,因为该问题在谷歌上排名较高。
来自 GitHub 文档:
您需要访问令牌才能发布、安装和删除软件包。 您可以使用个人访问令牌直接通过用户名进行身份验证,以访问 GitHub Packages 或 GitHub API。[...]
您无法从 GitHub npm 注册表中安装软件包(即使是公共软件包)而不进行身份验证。
更多详细信息和多种身份验证方法请参见此处:

https://docs.github.com/en/packages/guides/configuring-npm-for-use-with-github-packages#authenticating-to-github-packages


“您无法安装软件包(即使是公共的)” - 这不可能是真的,我刚刚在本地注销了npm和github,仍然能够安装公共的github软件包。 - johann1301s
更新:我刚刚发现我的~/.npmrc文件中有凭据。当我删除该文件时,就会出现错误。所以你是正确的。 - johann1301s
“你无法在未经身份验证的情况下从GitHub npm注册表安装软件包(即使是公共软件包)。这个信息是从哪里获得的?你引用了GitHub文档吗?” - johann1301s
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry#authenticating-to-github-packages 的第一行写道:“您需要访问令牌才能发布、安装和删除软件包。”。我最近没有尝试过,而且这句话有点含糊不清,但我相信这就是他们的意思。 但再说一遍,我最近没有尝试过,这些信息是基于我去年进行的一些试验得出的。 - tenko

0

文档应该更新。

发布、安装和删除包都需要访问令牌。

这应该真正改为:

您需要访问令牌来发布、安装和删除私有和公共包。


我创建了一个pull request - johann1301s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接