2016-08-04 8 views
7

Chcę globalnie skonfigurować rejestr NPM dla określonego scope do użycia z konkretnym token.Globalnie skonfiguruj NPM z rejestrem tokenów do określonego zakresu (@organisation)

wiem, że mogę używać:

$ npm login [email protected] 

Mogę również napisać ~/.npmrc z:

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

Ale co chcę jest combinaison z dwóch metod: Korzystanie z tokena w podczas przypisywania adresu URL rejestru do mojego zakresu.

Próbowałem:

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

Ale po uruchomieniu polecenia NPM (np npm install @organisation/my-package). Pojawia się następujący błąd:

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 

Czy istnieje rozwiązanie? (Potrzebuję zmiennej tokena i bez env).

PS: https://github.com/npm/npm/issues/7995#issuecomment-175915766 ale to nie działa ...

Odpowiedz

6

Według oficjalnej dokumentacji powinien móc associate a scope with a registry when logging in. Czy to jest to, czego chcesz?

Czy próbowałeś następujących sposobów?

npm login --registry=https://reg.example.com [email protected] 

Jeśli nie chcesz, aby zalogować się, ale raczej chcą określić token wyraźnie, następujące powinny działać:

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

Należy pamiętać, że adres URL rejestru muszą być znormalizowane dla tej pracy, tzn. nie powinien zawierać schematu i musi kończyć się ukośnikiem.