Глобально настроить NPM с реестром токенов для определенной области (@organisation)

Я хочу глобально настроить реестр NPM для конкретной области, которая будет использоваться с определенным токеном.

Я знаю, что я могу использовать:

$ npm login --scope=@organisation

И я также могу написать ~/.npmrc с:

//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

Есть ли решение? (Мне нужно использовать токен, а не переменную env).

PS: https://github.com/npm/npm/issues/7995 но это не работает...

1 ответ

Решение

Согласно официальной документации, вы должны иметь возможность связать область с реестром при входе в систему. Это то, что вы хотите?

Вы пробовали следующее?

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-адрес реестра должен быть нормализован, чтобы он работал, т.е. он не должен включать схему и должен заканчиваться косой чертой.

Другие вопросы по тегам