NPMで依存関係を調査:特定パッケージの全依存パッケージを見つける3つの方法と、その他役立つテクニック
NPMで特定のパッケージに依存するすべてのインストール済みパッケージを見つける方法
npm-lsコマンドを使用する
npm-ls
コマンドは、現在のディレクトリにインストールされているすべてのパッケージとその依存関係を表示します。特定のパッケージに依存するパッケージを見つけるには、以下のコマンドを実行します。
npm ls --depth=Infinity <target-package>
このコマンドは、target-package
に直接依存するパッケージだけでなく、間接的に依存するパッケージもすべて表示します。
npm-who-needsコマンドを使用する
npm-who-needs
コマンドは、特定のパッケージを必要とするプロジェクトを検索します。このコマンドを使用して、NPMレジストリ内のプロジェクトを検索することもできますが、現在のディレクトリにインストールされているパッケージに絞って検索することもできます。
npm-who-needs <target-package>
このコマンドは、target-package
を必要とするプロジェクトの名前とバージョンのみを表示します。
lernaコマンドを使用する
lerna
は、複数のNPMパッケージを管理するためのツールです。lerna
には、ls
コマンドがあり、ワークスペース内のすべてのパッケージとその依存関係を表示できます。特定のパッケージに依存するパッケージを見つけるには、以下のコマンドを実行します。
lerna ls --include-dependencies <target-package>
- 上記のコマンドの出力結果が大量の場合は、
grep
コマンドなどのツールを使用して絞り込むことができます。 npm-ls
とlerna ls
コマンドは、現在のディレクトリにインストールされているパッケージのみを表示します。NPMレジストリ内のプロジェクトを検索するには、npm-who-needs
コマンドを使用する必要があります。- 上記のコマンドを実行する前に、
target-package
がインストールされていることを確認する必要があります。
例
以下の例では、express
パッケージに依存するすべてのパッケージを見つける方法を示します。
# npm-lsコマンドを使用する
npm ls --depth=Infinity express
# npm-who-needsコマンドを使用する
npm-who-needs express
# lernaコマンドを使用する (lernaがインストールされている場合)
lerna ls --include-dependencies express
これらのコマンドを実行すると、以下のような出力結果が表示されます。
# npm-lsコマンドの出力結果
[email protected]
├── [email protected]
└── ... (省略)
# npm-who-needsコマンドの出力結果
@example/[email protected] needs [email protected]
# lerna lsコマンドの出力結果 (lernaがインストールされている場合)
[email protected]
dependencies:
express: ^4.17.1
... (省略)
npm install <package-name>
このコマンドは、指定されたパッケージとその依存関係を現在のディレクトリにインストールします。
パッケージの使用
const <package-name> = require('<package-name>');
// パッケージの機能を使用する
このコードは、package-name
パッケージを require し、その機能を使用します。
以下の例では、express
パッケージをインストールして使用する方法を示します。
package.json
{
"dependencies": {
"express": "^4.17.1"
}
}
index.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
このコードを実行すると、Hello, World!
というメッセージが表示される Web サーバーが起動します。
- パッケージを使用するには、
require()
関数を使用してパッケージをインポートする必要があります。 - パッケージをインストールするには、
npm install
コマンドを実行する必要があります。 - 上記のコードは、Node.js と NPM がインストールされていることを前提としています。
npx npm-ls --depth=Infinity <target-package>
npx npm-who-needs <target-package>
グラフィカルツールを使用する
NPMには、依存関係を視覚化できるいくつかのグラフィカルツールがあります。これらのツールを使用すると、特定のパッケージに依存するパッケージを簡単に特定できます。
オンラインサービスを使用する
手動で確認する
上記の方法がうまくいかない場合は、手動で確認することもできます。
node_modules
フォルダを開きます。target-package
フォルダを見つけます。- このフォルダ内にあるすべてのフォルダーは、
target-package
に依存しているパッケージです。
注意事項
- 手動で確認するのは、時間のかかる作業になる可能性があります。
- グラフィカルツールやオンラインサービスを使用するには、インターネット接続が必要です。
- 上記の方法の中には、NPM の特定のバージョンでのみ使用できるものがあります。
node.js npm