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