このメモの背景
色々なnpmモジュールを追加していくうちに、見たことも聞いたこともないモジュールからエラーが吐かれ困惑する、なんてことはJSの開発をしていると度々あります。こういった場合、エラーを吐いているモジュール自体の問題なのか、そのモジュールを呼び出している別のモジュールに問題があるのかを調査する必要が都度発生するのですが、まずは依存関係を把握しないことには始まりません。
このような作業が発生した際、私が取っているアプローチをメモしておきます。
- (前提) Source Mapを出す ⇒ 省略
- インスペクタを頼りにエラーを吐いているモジュール名を特定する
- エラー発生元のモジュールを呼び出しているモジュールを、node_moduels内の各モジュールのpackage.jsonを調べて特定する
grep -rnw './node_modules' --include=package.json -e 'モジュール名'
- これを自プロジェクトのpackage.jsonで依存関係として定義しているモジュールに行き当たるまで繰り返す
- 依存関係が見えたところでコードを読んで必要な対応を行う
便利なnpmコマンドとかもありそうですが、package.json見たほうが早そうなのでgrepしてます。