如何将 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】:经过这么多不同的配置和这么多意图,我找到了一种适用于npm
和yarn
的方法,没有任何问题。
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 节点、标准环境一起使用