问题描述
如何从我自己的帐户安装来自gemfury的私有软件包。
尝试从我的gemfury帐户安装私有软件包时收到403。
yarn --verbose
...
verbose 0.22845086 Found configuration file "/Users/chrisbest/Documents/test-client/.yarnrc".
...
verbose 0.234278553 current time: 2020-08-26T17:06:01.680Z
[1/5] ? Validating package.json...
[2/5] ? Resolving packages...
verbose 0.454187488 Performing "GET" request to "https://npm.fury.io/testorg/@testscope%2fbutton".
verbose 1.61564947 Request "https://npm.fury.io/testorg/@testscope%2fbutton" finished with status code 403.
verbose 1.630735964 Error: Couldn't find package "@testscope/button@^1.0.0" required by "[email protected]" on the "npm" registry.
我在Gemfury上试用了组织帐户和协作者个人帐户。
我已经发布了一个可以通过Web UI看到的名为button
的软件包(我也尝试了@ lhpublic / button`)。
我已将范围限定的注册表url添加到在"@testscope:registry" "https://npm.fury.io/testorg/"
上方列出的.yarnrc文件中,并且yarn确实向我指定的url发出了请求。
我已经设置了npm config set always-auth true
并使用我的gemfury合作者帐户npm login --registry=https://npm.fury.io/testorg
登录到注册表,并在〜/ .npmrc中看到了
always-auth=true
//npm.fury.io/:_authToken={my token}
运行yarn --verbose info @testscope/button
时,我还会看到403,而yarn --verbose info button
成功返回了公共npm注册表上无关的button
软件包的信息。
解决方法
似乎您在npm login
命令中省略了URL末尾斜杠。如果您以以下方式运行命令:
$ npm login --registry="https://npm.fury.io/testorg/"
npm将在〜/ .npmrc中正确保存您的Gemfury回购凭证:
//npm.fury.io/testorg/:_authToken={my token}