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
avaとかxoとか入っててナウい感じがする。
全体的には意外と常識的なパッケージがおおい。
atom
エディタだから、mkdirp, rifrafなどのファイル操作系が多い、のかな?
あとやっぱりcoffee多い。
npm
聞いたことないパッケージだと思って調べると、npmの中の人がnpmの為に書いたものが多い。
細かくパッケージ化するのはいいけど、名前から動作が想像できなかったり、READMEも雑なので読めないのが難点。
express
bluebirdとかasyncとか入ってて、expressが盛況だったころを思い出しますね。
dependenciesにacorn入ってるの意外だな
感想
m o c h a 最 強