🚬
node_modules たちを一掃する
はじめに
Mac のストレージ容量が何故か圧迫されていたり、npm パッケージが壊れたりよく分からないことになったりした場合は、node_modulesたちを一旦削除しましょう。
Easily find and remove old and heavy node_modules folders
(古くて重い node_modules フォルダを簡単に見つけて削除できる。)
使い方
$ npx npkill
インストールして使いたい場合は、
$ npm i -g npkill
$ npkill
実行すると npkill コマンドが実行されたパスから始まる (カレントディレクトリ配下の) node_modules たちを一覧で表示してくれます。

カーソルで移動し、削除したいフォルダのところで Space か Delete キーを押すことで削除することができます。
終了するには、Q または Ctrl + C を押します。
使えそうなオプションは下記くらいでしょうか。
| argument | description |
|---|---|
| -d, --directory |
node_modules の検索を開始するディリクトリを指定する。 |
| -E, --exclude | 検索対象から指定したディレクトリを除外する。 |
> npx npkill -d apps/client
----- __ .__.__ .__
- ____ ______ | | _|__| | | |
------ / \\____ \| |/ / | | | |
---- | | \ |_> > <| | |_| |__ releasable space: 0.00 GB
-- |___| / __/|__|_ \__|____/____/ space saved: 0.00 GB
------- \/|__| \/ 0.11.3 search completed 0.12s
> CURSORS for select; SPACE to delete < last_mod size
apps/client/node_modules 0d 0.68 MB
> npx npkill -d apps -E apps/client
EXCLUDE apps/client
----- __ .__.__ .__
- ____ ______ | | _|__| | | |
------ / \\____ \| |/ / | | | |
---- | | \ |_> > <| | |_| |__ releasable space: 0.01 GB
-- |___| / __/|__|_ \__|____/____/ space saved: 0.00 GB
------- \/|__| \/ 0.11.3 search completed 0.1s
> CURSORS for select; SPACE to delete < last_mod size
apps/admin/node_modules 0d 0.34 MB
apps/cli/node_modules 0d --
apps/hogehoge/node_modules 0d --
apps/bar/baz/node_modules 0d 5.21 MB
おわりに
package.json があれば npm i の実行によって node_modules を再生成できるので、npm パッケージ周りで困ることがあったら npkill を積極的に活用していきたいと思います。
Discussion