特定の スコープ を特定の トークン で使用できるように、NPMレジストリーをグローバルにセットアップしたい。
私は使用できることを知っています:
$ npm login --scope=@organisation
そして、~/.npmrc
with:
//registry.npmjs.org/:_authToken=XXXX
しかし、私が欲しいのは2つの方法の組み合わせです。レジストリ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 しかし、機能していません...
公式ドキュメントによると、 ログイン時にスコープをレジストリに関連付ける ができるはずです。これは、あなたの望むことですか?
以下を試しましたか?
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を正規化する必要があります。つまり、スキームを含めず、スラッシュで終了する必要があります。