Copy & Paste Engineer

【Node.js】dependency-cruiser 依存関係を可視化する方法

【Node.js】dependency-cruiser 依存関係を可視化する方法

dependency-cruiserは、JavaScript/TypeScriptプロジェクトのモジュール依存関係を解析・可視化するツールです。

dependency-cruiserの概要

インストール手順

Graphvizのインストール

GraphvizはDOT形式のグラフをSVG等にレンダリングするために必要です。

dependency-cruiserのインストール

グローバルまたはプロジェクト内にインストール可能。

設定ファイルの作成

初期設定は以下のコマンドで簡単に作成できます。

npx depcruise --init

作成された .dependency-cruiser.js では、doNotFollow オプションで特定ディレクトリ(例:node_modules)の内部解析を防ぎ、解析結果のノイズを抑えます。

doNotFollow: {
  path: ['node_modules', 'test', '.storybooks', '.yarn', '__*', '__*.ts', '@@*']
},

依存関係グラフの生成

プロジェクト全体のグラフ生成

以下のコマンドでプロジェクトの依存関係をSVG画像に出力します。

npx depcruise ./ --output-type dot | dot -T svg > dependency-graph.svg

モノレポ対応(各パッケージごとにグラフ生成)

複数パッケージが存在する場合、各フォルダ毎に以下のコマンドで個別グラフを作成します。

find ./packages -maxdepth 1 -type d -exec bash -c 'dir={}; npx depcruise "$dir" --output-type dot | dot -T svg > "dependency-${dir##*/}-graph.svg"' \;

ベストプラクティス

参考リンク