🚬

node_modules たちを一掃する

2024/05/15に公開

はじめに

Mac のストレージ容量が何故か圧迫されていたり、npm パッケージが壊れたりよく分からないことになったりした場合は、node_modulesたちを一旦削除しましょう。

https://www.npmjs.com/package/npkill

Easily find and remove old and heavy node_modules folders
(古くて重い node_modules フォルダを簡単に見つけて削除できる。)

使い方

$ npx npkill

インストールして使いたい場合は、

$ npm i -g npkill
$ npkill

実行すると npkill コマンドが実行されたパスから始まる (カレントディレクトリ配下の) node_modules たちを一覧で表示してくれます。

カーソルで移動し、削除したいフォルダのところで SpaceDelete キーを押すことで削除することができます。
終了するには、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