【npm】 パッケージのインストール先の確認(npm list)


npm list

npm list によってパッケージのインストール先の確認をすることができます。

ローカルインストールの場合

# ローカルインストールされたパッケージの確認
$ npm list --depth=0

グローバルインストールの場合

# グローバルインストール先の確認
$ npm list -g | head -1

# グローバルインストールされたパッケージの確認
$ npm list -g --depth=0

実行例

ローカルインストールの場合

# typescript のインストール
$ npm install typescript
+ [email protected]

# node_modules に typescript のパッケージが存在していることの確認
$ ls node_modules
typescript

# ローカルインストールされたパッケージの確認
$ npm list --depth=0
[email protected] /Users/sugurutakahashi/git/typescript-node-base
└── [email protected]

# node_modules のない適当なディレクトリに移動
$ cd ../
$ ls node_modules
標準出力なし(= node_modules が空)

# ローカルインストールされたパッケージの確認
$ npm list --depth=0
/Users/sugurutakahashi/git
└── (empty)

このようにローカルインストールされたパッケージはカレントディレクトリの node_modules の内容を確認していることがわかります。

グローバルインストールの場合

# (前提その1)nodebrew で複数のバージョンの Node.js のバージョンを管理している状態(v14.13.1 を使用)
$ nodebrew ls
v12.6.0
v14.13.1

current: v14.13.1

# グローバルインストール先の確認(npm list -g | head -1)
$ npm list -g | head -1
/Users/sugurutakahashi/.nodebrew/node/v14.13.1/lib

# グローバルインストールされたパッケージの確認(npm list -g --depth=0)
$ npm list -g --depth=0
/Users/sugurutakahashi/.nodebrew/node/v14.13.1/lib
├── [email protected]
├── [email protected]
└── [email protected]

# v12.6.0 に切り替え
$ nodebrew use v12.6.0
$ nodebrew ls
v12.6.0
v14.13.1

current: v12.6.0

# グローバルインストール先の確認
$ npm list -g | head -1
/Users/sugurutakahashi/.nodebrew/node/v12.6.0/lib

# グローバルインストールされたパッケージの確認
$ npm list -g --depth=0
/Users/sugurutakahashi/.nodebrew/node/v12.6.0/lib
├── @vue/[email protected]
├── @vue/[email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

このように Node.js のバージョンを切り替えるとグローバルインストールされたパッケージの内容が異なることがわかります。

つまり、グローバルインストールしても nodebrew などで複数の Node.js のバージョンを管理している場合は、npm install -g <package> したパッケージが、それぞれのバージョンで別のものとして管理されるということになります。