プロジェクトを失わずに Mac の node_modules を削除する方法
AskClean チーム · 更新日 2026-08-05
package.json、正しい lockfile、依存パッケージの入手経路が残っていれば、プロジェクトの node_modules は削除できます。まずプロジェクトごとに容量と再構築条件を確認し、使用中のプロセスを止め、該当フォルダだけをゴミ箱へ移してください。その後、同じパッケージマネージャで再インストールし、ビルドとテストが通るまでゴミ箱を空にしません。

node_modules とプロジェクト本体を分ける
node_modules はインストール済みの依存ツリーで、通常は再構築できます。ただし project/node_modules を削除すると、再インストールが終わるまでそのプロジェクトは実行もビルドもできません。package.json、lockfile、ソース、設定、パッチ、ワークスペース定義、Git 履歴は再構築の入力であり、削除対象ではありません。共有ダウンロードを置く ~/.npm も別の領域です。
本当に再構築できるか確認する
lockfile は必要ですが、それだけで完全なバックアップにはなりません。プライベートレジストリの認証、VPN、Git 依存、file: 依存、ローカルワークスペース、Xcode Command Line Tools などのネイティブビルド環境、インストールスクリプトの外部ダウンロードも確認します。npm v12 は npm-shrinkwrap.json を読まないため、同形式のファイルを使う旧プロジェクトは、npm v12 に頼る前に package-lock.json へ改名してください。node_modules 内だけの手修正も削除すると失われます。
- プロジェクトのルートで pwd を実行し、du -sh ./node_modules と macOS の空き容量を記録します。
- package.json、正しい lockfile、ワークスペース設定、未コミットのソースや設定を確認します。古い npm プロジェクトに npm-shrinkwrap.json しかない場合は、npm v12 を使う前に package-lock.json へ改名します。
- プライベートレジストリ、Git・file: 依存、ローカルワークスペース、外部ダウンロード、必要なビルドツールへアクセスできることを確かめ、node_modules を使うプロセスを止めます。
- そのプロジェクトの node_modules だけをゴミ箱へ移し、リポジトリが指定するパッケージマネージャと、lockfile を変更しない手順でルートから再インストールします。
- ビルド、テスト、lint、アプリ起動を確認し、空き容量を再測定してからゴミ箱を空にします。
node_modules を、依存パッケージや手修正の唯一のコピーにしないでください。正確な依存物を取得できず、別の場所にも保存されていなければ、削除によって旧プロジェクトを再構築できなくなることがあります。
一つの依存フォルダだけを可逆的に削除する
確認済みのプロジェクトで node_modules だけを Finder のゴミ箱へ移し、親のリポジトリは選ばないでください。rm -rf ./node_modules はゴミ箱を経由せず取り消せないため、使うなら pwd と対象を再確認します。npm なら lockfile が正しい場合はリポジトリのルートで npm ci、pnpm・Yarn・Bun ならそのリポジトリが指定する、lockfile を変更しない手順で再インストールします。モノレポではルートの lockfile とワークスペース全体を一つの依存システムとして扱います。
ビルド・テスト・起動まで検証する
インストール成功だけでは復旧完了ではありません。プロジェクト所定のビルド、テスト、lint、起動確認を行い、ネイティブアドオンやライフサイクルスクリプトも動くことを確かめます。失敗したらゴミ箱から戻せるうちに復元し、認証、ネットワーク、Node.js とパッケージマネージャの版、ツールチェーン、lockfile の不整合を診断します。AskClean は node_modules をプロジェクト成果物として示し、ソースや Git 履歴を候補から分けます。
削除判断と復旧コスト
大きな node_modules をプロジェクト単位で確認し、ソースと lockfile を守りながら削除して、プロジェクトで使っていたパッケージマネージャで安全に再インストールします。
| 項目・操作 | 確認する場所 | 削除・操作後の結果 |
|---|---|---|
| node_modules とプロジェクト本体を分ける | <プロジェクト>/node_modules | node_modules はインストール済みの依存ツリーで、通常は再構築できます。ただし project/node_modules を削除すると、再インストールが終わるまでそのプロジェクトは実行もビルドもできません。package.json、lockfile、ソース、設定、パッチ、ワークスペース定義、Git 履歴は再構築の入力であり、削除対象ではありません。共有ダウンロードを置く ~/.npm も別の領域です。 |
| 本当に再構築できるか確認する | package.json + lockfile + ワークスペース設定 | lockfile は必要ですが、それだけで完全なバックアップにはなりません。プライベートレジストリの認証、VPN、Git 依存、file: 依存、ローカルワークスペース、Xcode Command Line Tools などのネイティブビルド環境、インストールスクリプトの外部ダウンロードも確認します。npm v12 は npm-shrinkwrap.json を読まないため、同形式のファイルを使う旧プロジェクトは、npm v12 に頼る前に package-lock.json へ改名してください。node_modules 内だけの手修正も削除すると失われます。 |
| 一つの依存フォルダだけを可逆的に削除する | ゴミ箱 / パッケージマネージャで再インストール | 確認済みのプロジェクトで node_modules だけを Finder のゴミ箱へ移し、親のリポジトリは選ばないでください。rm -rf ./node_modules はゴミ箱を経由せず取り消せないため、使うなら pwd と対象を再確認します。npm なら lockfile が正しい場合はリポジトリのルートで npm ci、pnpm・Yarn・Bun ならそのリポジトリが指定する、lockfile を変更しない手順で再インストールします。モノレポではルートの lockfile とワークスペース全体を一つの依存システムとして扱います。 |
| ビルド・テスト・起動まで検証する | ビルド + テスト + アプリ起動 | インストール成功だけでは復旧完了ではありません。プロジェクト所定のビルド、テスト、lint、起動確認を行い、ネイティブアドオンやライフサイクルスクリプトも動くことを確かめます。失敗したらゴミ箱から戻せるうちに復元し、認証、ネットワーク、Node.js とパッケージマネージャの版、ツールチェーン、lockfile の不整合を診断します。AskClean は node_modules をプロジェクト成果物として示し、ソースや Git 履歴を候補から分けます。 |
よくある質問
Mac で node_modules を削除しても安全ですか?
package.json、正しい lockfile、ワークスペース設定、ソース、必要な依存物へのアクセスが残っている場合は、通常は再構築できます。ただし再インストールが終わるまでプロジェクトは動きません。
package-lock.json も一緒に削除しますか?
削除しません。npm ci が同じ依存解決を再現するための入力です。npm v12 は npm-shrinkwrap.json を読まないため、古いプロジェクトではその同形式ファイルを package-lock.json へ改名してから利用します。
node_modules と npm キャッシュは同じですか?
違います。node_modules は一つのプロジェクトのインストール済み依存ツリーで、npm の共有キャッシュは通常 ~/.npm にあります。一方を削除しても、もう一方は消えません。
参考資料