Windows11にローカルでインストールしたnode_modulesを
エクスプローラー経由での削除ができなくて困っていたので、
node_modulesを削除方法をメモとして残しておきます。
windowsでnode_modulesを削除ができない原因
結論からいうと、パスの長さが250文字以上をデフォルトで認識しないようになっているからです。
npmでは依存ライブラリをnode_modulesというディレクトリの中に保存しています。
ライブラリhogeが依存しているライブラリはnode_modules/hoge/node_modules/
の中に保存されます。この方式をとることで、使っているライブラリAとBが、
共通のライブラリCに依存している場合に、AとBが使っているCのバージョンが
異なっていても問題無くなります。
その代償として、ファイル数が増えています。
また、依存関係が深ければ深いほどファイルシステム上のパスも長くなっています。
LinuxやMacではパスが長くても問題ありません。
しかし、Windowsでは長いパスは、OSやファイルシステムは対応してますが、エクスプローラーやコマンドプロンプトが対応してません。
要するに、Windowsでは、ファイルパス名が長すぎて削除できないモジュールが
出てくるため、node_modules ディレクトリを削除できませんでした。
削除方法
削除方法としては、フォルダの共有化で一括削除する方法やnpm uninstall パッケージ名
で削除する方法等があるようですが、本記事ではより簡潔な方法を紹介します。
①windowsアプリのubuntuを立ち上げます。
②消去したいnode_modulesディレクトリまでcdコマンドで移動します。
③以下のコマンドを実行します。
rm -r node_modules
rm(ファイルを削除する)コマンドに、オプションとして
-r(ディレクトリを削除)をつけています。
エクスプローラーは対応していないけれど、OS自体は対応しているので、
以上の方法で削除できるかと思います。
参考文献
・Qiita @ryomoucmei. Windows10でnode_modulesをサクッと消す手順. <https://qiita.com/ryomoucmei/items/2b7c9494316976217ae7> (参照日2022年10月1日).
・Qiita @kusano_k. Windows 10でnpmのnode_modulesを削除する方法. <https://qiita.com/kusano_k/items/570b6442780538b83a41> (参照日2022年10月1日).
・Monaural. Windows環境下でローカルインストールされたnpmモジュールを一括削除する. <https://ka2.org/delete-local-installed-npm-modules-into-windows> (参照日2022年10月1日).
0 件のコメント:
コメントを投稿