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

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

Windows 「desktop.ini」がデスクトップ上に表示される場合と起動時に勝手に開かれる場合の対処方法

Windowsで、「desktop.ini」がデスクトップ上に表示される場合と起動時に勝手に開かれる場合の対処方法を紹介します。私もこの不具合に遭遇して解決方法を調べたのですが、よく紹介されている方法では解決せず困っていため、忘備録として残しておきます。

desktop.iniとは?

デスクトップ画面の構成情報を保存しているシステムファイルです。desktop.iniにはデスクトップアイコンやフォルダ名・表示情報が記述されています。

desktop.iniはシステムファイルなので基本的には非表示設定されています。
しかし、フォルダーオプションの設定が変更されてシステムファイルが表示されるようになった場合に、このdesktop.iniファイルもデスクトップ画面に表示されたり、起動時に勝手に開かれたりするようになります。

desktop.iniは削除しても大丈夫?

一応削除すれば不具合は解決するのですが、削除してしまうとデスクトップの構成情報が参照できなくなり、表示が崩れたり、英語表記になったりするので、注意しましょう。

そこで、システムファイルの表示設定を初期状態に戻すことで、「desktop.ini」ファイルを非表示にする方法をおすすめします。

desktop.iniの非表示方法

  1. 「エクスプローラー」を起動
  2. フォルーダオプションの「表示」タブを選択
  3. 詳細設定の「隠しファイル、隠しフォルダー、または隠しドライブを表示しない」と「保護されたオペレーティング システムファイルを表示しない(推奨)」
    のチェックを入れ、「OK」をクリック

以上の方法が、本記事の不具合の解消方法としてよく他のサイトでも紹介されていました。

私の場合はこの方法では非表示にならず、以下の方法で解決しました。

PowerShellを開き、以下のコマンドを打ち込んでください。

attrib +s +h +r /s desktop.ini

現在のディレクトリとそのすべてのサブディレクトリ内にある(/s)、desktop.iniにシステムファイル属性(s)、隠しファイル属性(h)、読み取り専用ファイル属性(r)をattribコマンドで設定する(+)という仕掛けです。

参考文献

・Aprico. desktop.iniとは?削除しても大丈夫?非表示方法を紹介!. <https://aprico-media.com/posts/3875> (参照日2022年9月3日).
・microsoft. Docs/Windows Server/Windows のコマンド/関連項目/attrib. <https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/attrib> (参照日2022年9月3日).

人気の投稿