【Node.js】グローバルインストールの場所確認と設定
更新日:2022/10/01
npm -g コマンドは、パッケージをグローバルインストールしてくれます。
しかし、どこにインストールされたのか確認しようと思ったらわからない…
そんなときの確認方法と、グローバルインストール先の設定方法をお伝えします。
確認
グローバルインストール場所の確認
パッケージのグローバルインストール先は、次のコマンドで確認できます。
グローバルインストール場所の確認
> npm root -g
c:\Users\aaa\AppData\Roaming\npm\node_modules
このフォルダ(ディレクトリ)を確認すると、これまでインストールしたパッケージのフォルダが作成されているはずです。
設定ファイルの確認
次のコマンドを実行すると、設定ファイルを確認できます。
>npm config list
; "builtin" config from C:\Program Files\nodejs\node_modules\npm\npmrc
prefix = "C:\\Users\\aaa\\AppData\\Roaming\\npm"
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = 現在のパス
; HOME = C:\Users\aaa
; Run `npm config ls -l` to show all defaults.
prefixが、グローバルインストール先です。
上の結果では、C:\Program Files\nodejs\node_modules\npm\npmrc にprefixが定義されているのがわかります。
なお、設定ファイルが無いときは、次のように表示されます。
; node bin location = C:\Program Files\nodejs\v17.0.1\node.exe
; cwd = 現在のパス
; HOME = C:\Users\aaa
; Run `npm config ls -l` to show all defaults.
この場合は、グルーバルインストールの場所はデフォルト値が使用されています。
グローバルインストールしたパッケージの確認
次のコマンドを実行すると、グローバルインストールしたパッケージの確認ができます。
グローバルインストールしたパッケージの確認
>npm list -g
C:\Users\aaa\AppData\Roaming\npm
├── ejs@3.1.2
├── express@4.17.1
├── http-server@0.12.3
├── jsdoc@3.6.4
├── npm-check-updates@11.3.0
├── typescript@4.8.4
├── xmldom@0.3.0
└── xpath@0.0.27
グローバルインストールフォルダの内容と一致しているはずです。
補足:グローバルインストールしたパッケージの実行
パッケージのグローバルインストールは、CLIとして使用することが目的であるケースが多いです。
しかしコマンドを実行しても、実行できないことがあります。
このケースは環境変数のPATHに、コマンドのフォルダが含まれていない可能性があります。
まずはコマンドが格納されているフォルダに移動して、コマンドを実行してみましょう。
コマンドが格納されているフォルダは、グローバルインストールフォルダの一つ上の階層です。
グローバルインストールフォルダではないので、注意しましょう。
コマンドが実行できるなら、コマンドに問題はありません。
PATHにフォルダを登録して、他のフォルダに移動して再度コマンドが実行できるか確認しましょう。
設定
グローバルインストールの場所設定は、次のコマンドを実行します。
npm config set prefix=グローバルインストールパス
npm config listコマンドで、設定を確認してみます。
>npm config list
; "builtin" config from C:\Program Files\nodejs\node_modules\npm\npmrc
; prefix = "C:\\Users\\aaa\\AppData\\Roaming\\npm" ; overridden by user
; "user" config from C:\Users\aaa\.npmrc
prefix = "C:\\Users\\aaa\\AppData\\Roaming\\npm"
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = 現在のパス
; HOME = C:\Users\aaa
"builtin" config from の行のファイルで設定された prefix を、"user" config from のファイルで上書きしています。
builtinは、現在の npm のみが読み込む設定ファイルです。
Node.jsを複数インストールするなどで、他のバージョンの npm を実行した場合有効になりません。
しかし、"user" config from のファイルは、共通で読み込むことができます。
Node.js でグローバルインストールしたパッケージを利用できない場合
Node.js の require() でグローバルインストールしたパッケージを読み込めない時は、環境変数の NODE_PATH にパスをセットします。
set NODE_PATH=C:\Users\aaa\AppData\Roaming\npm\node_modules
パスはダブルコーテーションで囲むと、上手く動作してくれません。
囲まないようにしましょう。
node コマンドを実行して module.paths を入力すると、パッケージの検索ルートを確認できます。
>node
Welcome to Node.js v16.7.0.
Type ".help" for more information.
> module.paths
[
'C:\\Users\\aaa\\node_modules',
'C:\\Users\\node_modules',
'C:\\node_modules',
'C:\\Users\\aaa\\AppData\\Roaming\\npm\\node_modules',
'C:\\Users\\aaa\\.node_modules',
'C:\\Users\\aaa\\.node_libraries',
'C:\\Program Files\\nodejs\\lib\\node'
]
NODE_PATHでセットしたパスが含まれていればOKです。
ちなみにパスがダブルコーテーションで囲まれていると、次のようなイメージでダブルコーテーションが取り込まれます。
'"C:\\Users\\aaa\\AppData\\Roaming\\npm\\node_modules"',
上手く動かないのも、納得です。
更新日:2022/10/01
関連記事
スポンサーリンク
記事の内容について
こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。