# pnpm のキャッシュを削除して空き容量を増やす方法

> pnpm のストアが容量を圧迫しているなら、まずは保存先とサイズを確認。MangoDisk での確認方法、store prune とフォルダー削除の違い、依存パッケージへの影響を解説します。

古いプロジェクトを消したのに、空き容量があまり増えない。調べてみると、pnpm のストアにファイルが残っている。これは削除に失敗したとは限りません。pnpm はダウンロード済みのパッケージを共有ストアに保存するため、プロジェクトを1つ削除してもストアは空にならないからです。

**使われなくなったパッケージを整理するなら、まずは pnpm store prune。pnpm 以外も含めてキャッシュの容量を比べたいなら、MangoDisk でスキャンしてから削除対象を選べます。** 最初からストア全体を消したり、ソースコードやロックファイルに手を加えたりする必要はありません。

## 開発ツールのキャッシュをまとめて確認する

npm、pnpm、Python、Rust などを使っていると、キャッシュの保存先もあちこちに分かれます。MangoDisk の[ディープクリーン](/ja/docs/features/deep-clean)なら、対応するキャッシュを一覧で確認できます。フォルダーを1つずつ探さずに、どれが容量を使っているか比べられます。

![Windows 版 MangoDisk のディープクリーンで開発ツールのキャッシュ容量とパスを確認する画面](https://assets.mangodisk.app/images/screenshots/windows/ja/light-01-deep-cleanup.jpg)

pnpm のキャッシュ項目を開き、パスとサイズを確認します。容量が小さければ、そのまま残しても構いません。大きくなっている場合は、後述の違いを確認してから整理するか削除するかを決めましょう。スキャンだけでファイルが削除されることはありません。

MangoDisk が現在対応している場所は、Windows では `%LocalAppData%\pnpm\store`、macOS では `~/Library/pnpm/store` と `~/Library/Caches/pnpm` です。保存先を変更している場合は、次のコマンドで現在の場所を確認してください。

```bash
pnpm store path
```

このコマンドはパスを表示するだけです。**独自の保存先がスキャン結果に出なくても、キャッシュがないとは限りません。** 表示されたフォルダーをエクスプローラーや Finder で開き、サイズを確認できます。

## 使われなくなったパッケージは prune で整理する

Windows では PowerShell、macOS ではターミナルを開きます。実行中のインストールやビルドが終わったら、次のコマンドを実行します。

```bash
pnpm store prune
```

ストア内の参照されていないパッケージが、ごみ箱を経由せずに削除されます。ストア全体を空にするコマンドではありません。あとでブランチを切り替えたり古いバージョンをインストールしたりして必要になれば、pnpm が再ダウンロードします。[pnpm の公式ドキュメント](https://pnpm.io/cli/store)でも、毎回ではなく、ときどき整理することが勧められています。

実行後にファイルが残っていても異常ではありません。`prune` の目的は、フォルダーを空にすることではなく、使われなくなったパッケージを取り除くことです。近いうちにオフラインで作業する場合や、プライベートレジストリに接続できない場合は、必要なパッケージを再取得できるまでキャッシュを残しておきましょう。

## フォルダーごと削除する前に確認したいこと

再作成できると確認したキャッシュをまとめて削除したい場合は、MangoDisk でほかの項目の選択を解除し、対象の pnpm キャッシュだけを選んでからクリーンアップを実行します。

**MangoDisk は選択したキャッシュフォルダーを削除します。prune のように、個々のパッケージがまだ使われているかを判断するわけではありません。** 関連する処理を終え、個人ファイルが混在していないことと、依存パッケージを再ダウンロードできることを確認してください。削除方法や復元の制約は[安全なクリーンアップのガイド](/ja/docs/safety)で確認できます。

特に注意が必要なのは、グローバル仮想ストアです。プロジェクトでこの設定を有効にしている場合や、グローバルにインストールしたツールがストア内の依存パッケージを使っている場合、削除すると再インストールが必要になることがあります。その場合はフォルダーごと消さず、使用中の pnpm のバージョンで対応している整理方法を使ってください。判断できないときは残しておきましょう。詳しくは [pnpm のストア設定](https://pnpm.io/settings/node-modules#enableglobalvirtualstore)を参照してください。

ソースコード、`package.json`、`pnpm-lock.yaml` はキャッシュの削除対象ではありません。また、プロジェクト内の `node_modules/.pnpm` には実際に使う依存パッケージが入っています。一時ファイルのつもりで消さないでください。

## 表示サイズと実際に空く容量は同じとは限らない

pnpm は、プロジェクトごとにファイルを複製する代わりに、同じデータを再利用できます。ハードリンクを使っている場合、ストアとプロジェクトのフォルダーが同じディスク上のデータを参照します。片方を削除しても、もう片方が残っていれば、そのデータの分だけ空き容量が増えるわけではありません。[pnpm のディレクトリ構成の説明](https://pnpm.io/symlinked-node-modules-structure)に具体例があります。

複数のフォルダーの表示サイズを足して、その分すべて空くとは考えないでください。効果はクリーンアップ前後のドライブの空き容量で確認します。思ったほど増えなくても、使用中の依存パッケージまで削除する必要はありません。

それでも容量が足りないなら、MangoDisk の[ディスク使用量分析](/ja/docs/features/disk-analysis)で開発用フォルダーを見てみましょう。古いプロジェクトやビルド出力、別のツールのキャッシュが大きいのかもしれません。同じストアを何度も消すより、容量を使っている場所を見つけるほうが役に立ちます。

[MangoDisk をダウンロード](/ja)して、散らばった開発ツールのキャッシュをまとめて確認・整理できます。無料のオープンソースソフトウェアで、アカウント登録もログインも不要です。

関連記事：[npm キャッシュの削除方法](/ja/blog/clean-npm-cache) · [Cargo キャッシュと target フォルダーの違い](/ja/blog/cargo-cache-vs-target-folder) · [開発環境のクリーンアップガイド](/ja/blog/topics/developer-cleanup)
