プライベートnpmパッケージをダウンロードするには、プロジェクトにモジュールが必要です。これを達成するために、私は.npmrc
ファイルを使用して、パッケージのダウンロードに必要な読み取り専用トークンを提供します。 npmによって提供されたトークンをファイルの外に保持するために、それを環境変数として追加し、ファイル内で展開させたいと思います。例えば:
# .npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
取得方法がわかりませんNPM_TOKEN
は、インストールで参照される前に、envに追加されました。 npm preinstallスクリプトを使用してみました:
"preinstall": "NPM_READ_ONLY_TOKEN=my_token_goes_here_foo_bar"
**
しかし、私はまだ同じエラーが発生します:
Error: Failed to replace env in config: ${NPM_READ_ONLY_TOKEN}
.npmrc変数の展開前にpreinstall
が実行されるかどうかを確認するために、echoコマンドを使用してテストを試みましたが、実行されないようです。エラーが発生し、エコーログが表示されません。ここに何か欠けているようです。
私のトークンをpackage.jsonに入れると、トークンを.npmrcファイルから引き出す目的に反することを知っています。コマンドを実行して必要なトークンを取得するために使用するenv configサービスを提供するサービスを実際に使用しています。例えば。 TOKEN=config_service_value
。
環境変数を.bashrc
またはその他の起動シェルファイルに追加できます。
export NPM_TOKEN=my_token_goes_here_foo_bar
Npmrcのドキュメントは間違っています。
変数展開は$EXPAND_ME
ではなく${EXPAND_ME}
。