22

我想为要与特定令牌一起使用的特定范围全局设置 NPM 注册表。

我知道我可以使用:

$ npm login --scope=@organisation

我也可以写一个~/.npmrcwith :

//registry.npmjs.org/:_authToken=XXXX

但我想要的是两种方法的组合:在将注册表 URL 分配给我的范围时使用令牌。

我试过了 :

npm config set @organisation:registry https://registry.npmjs.org/:_authToken=XXXX

但是在运行 NPM 命令时(例如npm install @organisation/my-package)。我收到以下错误:

npm ERR! Darwin 15.6.0
npm ERR! argv "/Users/me/.nvm/versions/node/v6.2.2/bin/node" "/Users/me/.nvm/versions/node/v6.2.2/bin/npm" "install" "@organisation/my-package"
npm ERR! node v6.2.2
npm ERR! npm  v3.10.3
npm ERR! code E403
npm ERR! you do not have permission to publish ":_authToken=XXXX". Are you logged in as the correct user? : :_authToken=XXXX

有解决办法吗?(我需要使用令牌并且没有环境变量)。

PS:https ://github.com/npm/npm/issues/7995#issuecomment-175915766但它不工作......

4

1 回答 1

50

根据官方文档,您应该能够在登录时将范围与注册表相关联。这是你想要的吗?

您是否尝试过以下操作?

npm login --registry=https://reg.example.com --scope=@myco

如果您不想登录,而是想明确指定令牌,则以下内容应该有效:

npm config set @myco:registry https://reg.example.com
npm config set //reg.example.com/:_authToken xxxxxxxx

请注意,注册表 url 必须经过规范化才能正常工作,即它不应该包含方案并且必须以斜杠结尾。

于 2017-02-08T13:37:20.887 回答