ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示

Windows でnpmのnode_modulesを削除する方法

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日).

Linuxコマンド sudo su とは

本記事では、LinuxOSを操作するときに出てくる sudo su というコマンドを解説します。

sudoコマンド(Super User Do)とは?

スーパーユーザー(=root)としてsudoに続くコマンドを実行する権限を
その都度与えるコマンドです。

つまり、その瞬間だけroot権限(Windows系OSでいうとAdministrator)
になってsudoに続くコマンドを実行するコマンドです。

コマンド実行完了後は権限が元に戻ります。

root権限は、システム管理者用のアカウントに付与されるほぼすべての
操作ができる強力な権限なので、sudoを使う際には注意が必要です。

#管理者として実行したいコマンドがある場合に使う
sudo 実行したいコマンド

suコマンドとは?

sudoの続きによくくる「su」というのはコマンドです。

suコマンド(switch user)はユーザを切り替えるコマンドになります。

このsuコマンドを実行すると以降の操作は切り替えたユーザで操作になります。

#ユーザを切り替えたいときに使う。
su 切り替えるアカウント名

suコマンドでユーザを省略するとrootを切り替えたことになります。

つまり、sudo suコマンドはroot権限でsuコマンドを実行します。(sudo su rootと同じ)

sudo suとsudo su -の違い

suコマンドに-(ハイフン)がついているときとそうでないときがあります。

ハイフンがついているときは、ホームディレクトリが
切り替えたユーザのホームディレクトリに移動します。

#ユーザーを切り替え+切り替えたユーザーのホームディレクトリへ移動
su - 切り替えるアカウント名

つまり、sudo su - ではホームディレクトリがrootに移動します。

そのため、カレントディレクトリを切り替えたくない場合はハイフンは付けません。

参考文献

・Qiita @msht0511. 「sudo su」ってざっくり言ってなんぞ?. <https://qiita.com/msht0511/items/31294277a4415ccb4ac9> (参照日2022年9月24日).
・株式会社CONFRAGE ITソリューション事業部. Linuxコマンドのsudoとsuとsudo suとsudo su -コマンドの違いを分かりやすく. <https://confrage.jp/linux%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AEsudo%E3%81%A8su%E3%81%A8sudo-su%E3%81%A8sudo-su-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E9%81%95%E3%81%84%E3%82%92%E5%88%86%E3%81%8B%E3%82%8A/> (参照日2022年9月24日).

人気の投稿