「npm uninstall all」みたいなコマンドが無かったのでスクリプトを書いた話
2021-02-09
「npm list」をした時に、「npm ERR! extraneous: …」のようなエラーが多発するが、
多すぎて「package.json」を書き直すのも面倒なので、
「いっそのこと全部アンインストールしよう」と思ったが、
「npm uninstall all」みたいなコマンドが無かったのでスクリプトを書いた話
スクリプトは以下
「npm ls –depth=0」で出てきたパッケージリストを成形して、
「npm rm」コマンドに渡して削除している
#!/bin/zsh npm ls --depth=0 > npmlist.txt sed -i -e '1d' npmlist.txt sed -i e 's/^....//g' npmlist.txt sed -i -e 's/\^//g' npmlist.txt sed -i -e 's/UNMET PEER DEPENDENCY //g' npmlist.txt sed -i -e 's/>//g' npmlist.txt sed -i -e 's/=//g' npmlist.txt sed -i -e 's/@[0-9].*//g' npmlist.txt nlist=$(sed -e :loop -e 'N; $!b loop' -e 's/\n/ /g' npmlist.txt) npm rm ${nlist}
※「npm ls」で出てきた結果をいっぺんに消せなかったので、「-depth=0」を追加しています
※ほとんど網羅していると思いますが、一部消えないパッケージがあったらごめんなさい、手動で削除してください
「npmlist.sh」というファイル名で作成したとすると、実行は以下コマンドで。
何回か回すと全部削除できる
sh npmlist.sh
これで全部無くなった、スッキリ
% npm list /Users/yoshi └── (empty)
スクリプトを回す過程でできた余計なファイルは手動で削除ください
(自動削除にすると怖いので)
rm npmlist.txt*
以上。