首页 > 解决方案 > 从 Github 包注册表安装私有包失败,未找到/未授权

问题描述

我创建并发布了一个私有的 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事情也不起作用。

标签: npmyarnpkginstall.packagesgithub-package-registry

解决方案


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

无论你使用 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

一些评论:

  • always-auth需要,至少在使用纱线时(尚未使用 npm 测试)
  • 相反,添加上面的.yarnrc内容是行不通的。当需要身份验证时,纱线会以某种方式出现问题。
  • yarn add @GITHUB_USERNAME/PACKAGE_NAME现在,您可以使用npm 或等效的 npm轻松安装您的私有包。
  • 包括registry=https://registry.yarnpkg.com/纱线或registry=https://registry.npmjs.org/npm

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


推荐阅读