从 Github 包注册表安装私有包失败,未找到/未授权

Ale*_* S. 17 npm install.packages yarnpkg github-package-registry

我创建并发布了一个私有的 Github 包。首先尝试用纱线安装它,我面临以下问题:

无论我尝试使用 yarn 还是 npm,它都无法找到包,尽管遵循 Github 记录的确切步骤(https://help.github.com/en/github/managing-packages-with-github-package-registry/配置 npm-for-use-with-github-package-registry)。

我的.yarnrc

registry "https://npm.pkg.github.com/OWNER"

使用yarn,它会不断尝试查找包https://registry.yarnpkg.com/@GITHUB_USERNAME而不是我在上面输入的注册表。

备注:在.yarnrc注册表中需要按照稍微不同的语法添加:

registry "https://npm.pkg.github.com/"

到目前为止,我也开始尝试混合.npmrc.yarnrc配置,但没有运气。

——

编辑(部分解决)

我想出了如何使用 npm 或 - 在我的情况下 - 纱线来实际访问包。现在我遇到了Request failed \"401 Unauthorized\"错误的问题,尽管我在上面添加了凭据.yarnrc

//npm.pkg.github.com/:_authToken=AUTH_TOKEN

在里面做同样的.npmrc事情也行不通。

Ale*_* S. 30

我找到了解决方案,不幸的是,该解决方案在任何地方都没有得到很好的记录,而是混合了不同的资源——而且非常简单。

无论您使用 npm 还是 yarn,只需准备好以下内容.npmrc(yarn 也会包含此内容):

registry=https://registry.yarnpkg.com/

@GITHUB_USERNAME:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=AUTH_TOKEN
always-auth=true
Run Code Online (Sandbox Code Playgroud)

一些评论:

  • always-auth 需要,至少在使用纱线时(尚未使用 npm 进行测试)
  • .yarnrc替代中添加上述内容不起作用。不知何故,当需要身份验证时,纱线会出现问题。
  • 现在,您可以轻松地使用yarn add @GITHUB_USERNAME/PACKAGE_NAMEnpm 或等效的 npm安装您的私有包。
  • 包括registry=https://registry.yarnpkg.com/纱线或registry=https://registry.npmjs.org/npm

我希望这个解决方案也适用于您的情况。否则,请告诉我您面临的问题,我很乐意分享有关此主题的一些研究以及解决方案可能隐藏的位置。


ele*_*han 8

我在这里添加一个答案是因为在尝试了这里和其他地方的解决方案的不同变体一天之后,我发现我的问题是别的东西。

\n

我的问题是,虽然npm包名称不区分大小写,yarn 涉及身份验证时!\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f

\n

因此,使用上面接受的解决方案中的示例:

\n
registry=https://registry.yarnpkg.com/\n\n@GITHUB_USERNAME:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=AUTH_TOKEN\nalways-auth=true\n
Run Code Online (Sandbox Code Playgroud)\n

我需要确保两件事:

\n
    \n
  1. @GITHUB_USERNAME 需要与您在 github 上看到的大小写以及发布包的名称相匹配。即,如果您的用户名是 Pickle-Rick,则需要输入@Pickle-Rick:registry=https://npm.pkg.github.com,而不是@pickle-rick@Pickle-rick

    \n
  2. \n
  3. 您需要在您package.json或您的yarn add命令中匹配此大小写 - 无论您使用哪个。例如:

    \n

    "@Pickle-Rick/schwifty": "^1.0.0"package.jsonyarn add @Pickle-Rick/schwifty.

    \n
  4. \n
\n

我通过挖掘yarn github issues找到了这个解决方案。

\n