从全局configurationNPM到令牌registry(@organisation)

我想全局设置一个特定范围的NPMregistry,以便与特定的令牌一起使用。

我知道我可以使用:

$ npm login --scope=@organisation 

我也可以写一个~/.npmrc

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

但是我想要的是两种方法的组合:在将registryURL分配给我的作用域时使用该标记。

我试过了 :

 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 

有解决scheme吗? (我需要使用一个令牌,没有envvariables)。

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

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

你尝试了以下吗?

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

如果您不想login,而是想明确指定标记 ,则以下内容应该可用:

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

请注意,registryurl必须标准化才能正常工作,即不应包含scheme,并且必须以斜杠结尾。