自分が依存しまくってるnpmパッケージを表示するツールつくった

f:id:amagitakayosi:20160414112017p:plain

https://www.npmjs.com/package/what-do-i-depend-on github.com

先日のleft-pad騒動で、自分のプロジェクトのnode_modulesを慌ててチェックした。
普段依存の依存とかまったく意識してないけど、いざ見なおしてみるとその数の多さにビックリする。

全ての依存を把握するのは正直無理だけど、ざっと見てみるだけでも発見がある。
意外とscoped packageが使われてたり。めちゃくちゃミニマルなパッケージが人気だったり。
babel関係のパッケージが多すぎて目眩がしたり。

というわけで、自分のプロジェクトの依存パッケージを再帰的に調べて、依存度合いをチェックするツールを作った。
node_modules/ 内の package.json再帰的に調べて、パッケージが登場した回数を表示する。

使い方

インストール

npm i -g what-do-i-depend-on

what-do-i-depend-on または wdido で実行できる。

デフォルトでは、dependenciesとdevDependenciesを区別せずに集計する。
どちらかだけを表示するには、 --dependencies(--pro) または --devDependencies(--dev) オプションをつける。

wdido --dependencies

node_modules/を再帰的に調べる深さは、 --depth(-d) で指定する。
depth=0 のとき、プロジェクト本体の package.json だけが対象となる。

wdido --depth 3

--gloal(-g) すると、グローバルにインストールされたパッケージを調べられる。
よく使うCLIツールの作者や、その作者のお気に入りのパッケージが見つかるかも?

wdido -g

集計結果は表形式で出力される。
大抵の場合はものすごく長くなるので、 --rows(-r) で行数を指定するとよい。

wdido -r 20

--json(-j) すると、JSON形式でも出力できる。

wdido -j

いろんなパッケージの依存状況をみる

babel

f:id:amagitakayosi:20160414112251p:plain avaとかxoとか入っててナウい感じがする。
全体的には意外と常識的なパッケージがおおい。

atom

f:id:amagitakayosi:20160414112350p:plain エディタだから、mkdirp, rifrafなどのファイル操作系が多い、のかな?
あとやっぱりcoffee多い。

npm

f:id:amagitakayosi:20160414112615p:plain 聞いたことないパッケージだと思って調べると、npmの中の人がnpmの為に書いたものが多い。
細かくパッケージ化するのはいいけど、名前から動作が想像できなかったり、READMEも雑なので読めないのが難点。

express

f:id:amagitakayosi:20160414112921p:plain bluebirdとかasyncとか入ってて、expressが盛況だったころを思い出しますね。
dependenciesにacorn入ってるの意外だな

感想

m o c h a 最 強