できない.dev

.npmrc

別名: npmrc / npm 設定ファイル / npm config file

npm の設定を key = value で書く ini 形式のファイル。
プロジェクト・ユーザー・グローバル・npm 組み込みの 4 か所にあり、レジストリや認証トークン、グローバルインストール先などを決める。

公開:

定義

.npmrc は、npm の設定値を書く ini 形式のファイル。registry(取得先のレジストリ)、proxy、認証トークン、prefix(グローバルインストール先)などを key = value で指定する。
npm はコマンドラインのフラグ、npm_config_ で始まる環境変数、npmrc ファイル、既定値の順に設定を優先し、.npmrc はその 3 番目にあたる。

詳細

読まれる npmrc は 4 つある。
プロジェクトのルート(package.json の隣)の .npmrc、ユーザーの ~/.npmrc、グローバルの $PREFIX/etc/npmrc、npm 本体に同梱の npmrc で、同じキーはこの順に優先される。${NPM_TOKEN} のように環境変数を参照でき、# か ; で始まる行はコメント。
認証トークンは //registry.npmjs.org/:_authToken=... のようにレジストリの URI を前に付けて書き、別のホストへ送られないようにする(公式ドキュメント(新しいタブで開く))。
いま効いている値は npm config list で確認できる。

registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=${NPM_TOKEN}

よくある誤解

  • プロジェクトの .npmrc は npm install -g にも効く: グローバルモードではプロジェクトの .npmrc は読まれない。
  • 未定義の環境変数は空文字になる: npm は未定義の ${VAR} を置き換えずにそのまま残す。
    空文字にしたいときは ${VAR?} と書く。
  • ~/.npmrc の prefix は nvm と併用できる: nvm の README は prefix 設定が nvm と互換性が無いとしており、バージョンを切り替えるとグローバルパッケージが見えなくなる原因になる。

関連

nvm との衝突は 切り替えるとグローバルパッケージが使えない、レジストリやプロキシ経路の切り分けは npm install が EINTEGRITY で失敗する を参照。package.json とは別のファイルで、依存関係ではなく npm 自体の動作を決める。

この記事は役立ちましたか?