1. ホーム
  2. node.js

[解決済み】npmパッケージのローカルインストールにカスタムロケーションを設定する方法は?

2022-04-13 03:26:32

質問

にカスタムパッケージの保存先を指定することは可能ですか? npm install コマンドフラグや環境変数で指定できますか?

デフォルトでは、npm ローカルインストールは node_modules にインストールしたいのですが、カレントディレクトリ内の node_modules のように、別のディレクトリにある vendor/node_modules . どうすれば実現できるのでしょうか?

どのように解決するのですか?

TL;DR

これを行うには --prefix フラグと --global * フラグを使用します。

pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules
[email protected] /Users/pje/foo/vendor/node_modules/bower

*これはグローバルなインストールですが、インストールされたビンは、以下の場合を除いて、コマンドラインからアクセスできません。 ~/foo/vendor/node_modules の中に存在する PATH .

TL;DR

のすべての設定可能な属性は npm は、6か所のいずれかに設定することができます。優先順位の高い順に並べると

  • コマンドラインのフラグ。 --prefix ./vendor/node_modules
  • 環境変数。 NPM_CONFIG_PREFIX=./vendor/node_modules
  • ユーザー設定ファイル。 $HOME/.npmrc または userconfig パラメータ
  • グローバルコンフィグファイル。 $PREFIX/etc/npmrc または userconfig パラメータ
  • 組み込み用設定ファイル。 path/to/npm/itself/npmrc
  • デフォルトのコンフィグです。 node_modules/npmconf/config-defs.js

デフォルトでは、ローカルにインストールされたパッケージは ./node_modules グローバルなものは prefix コンフィグ変数( /usr/local をデフォルトで使用します)。

を実行することができます。 npm config list で現在のコンフィグを確認し npm config edit で変更できます。

PS

一般的には npm のドキュメントは本当に便利です。その フォルダ セクションは、npm の構造的な概要をよく表しています。 コンフィグ のセクションがこの質問に答えています。