如何将 Gemfury 作为私有 npm 注册表与 Yarn 结合使用?

Posted

技术标签:

【中文标题】如何将 Gemfury 作为私有 npm 注册表与 Yarn 结合使用?【英文标题】:How to use Gemfury as a private npm registry in conjunction with Yarn? 【发布时间】:2019-07-27 09:23:26 【问题描述】:

我们正在尝试将 Gemfury 与 Yarn 结合使用,而不是 NPM。我们已配置代理注册表 URL 并登录其中更新了我们的 .npmrc 文件:

//npm-proxy.fury.io/mycompany/:_authToken=foobar
registry=https://npm-proxy.fury.io/mycompany/

此配置已经过测试,并且可以与 NPM 一起使用我们的 Gemfury 注册表中的私有包以及 NPM 注册表中的公开包。例如这两个过程都没有问题:

npm install express
npm install @mycompany/foobar

不幸的是,这种配置根本不适用于 Yarn。我们的 Gemfury 帐户之外的所有公共软件包在安装时出现错误,如下所示:

error An unexpected error occurred: "https://npm-proxy.fury.io/ourcompany/express: bad_request".

或者

Error: Couldn't find package "output-file-sync@^2.0.0" required by "@babel/cli@^7.2.3" on the "npm" registry.

我希望我只是在这里为 Yarn 遗漏了某种配置步骤,但我一直在研究文档,似乎使用 Yarn 而不是 NPM 应该有什么不同。

我错过了什么吗?

【问题讨论】:

【参考方案1】:

经过这么多不同的配置和这么多意图,我找到了一种适用于npmyarn 的方法,没有任何问题。

npm config set @mycompany:registry https://npm-proxy.fury.io/mycompany/
npm config set //npm-proxy.fury.io/mycompany/:_authToken=$GEMFURY_TOKEN
npm config set always-auth true

只需将$GEMFURY_TOKEN 替换为您的特定令牌即可。

【讨论】:

是的,如果我记得,always-auth true 是这里的关键!

以上是关于如何将 Gemfury 作为私有 npm 注册表与 Yarn 结合使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将私有、自托管的 NPM 包与 Google App Engine 节点、标准环境一起使用

JFrog私有注册表无法npm安装

Yarn 找不到私有的 Github npm 注册表

如何通过 https 使用私有 GitLab 存储库作为带有私有令牌的 npm 依赖项

已启用 npm 注册表 2fa 的 nexus 代理存储库

Azure Devops:即使在设置 NPM Authenticate 之后,也无法使用 NPM 私有注册表构建映像