# pnpm 快取占太多空間，該怎麼清？

> 用 MangoDisk 查看 pnpm 快取的大小與路徑，了解 store prune 和清空資料夾的差別，以及對專案相依套件的影響，找出值得清理的空間。

舊專案刪掉了，磁碟卻沒空出多少；找了一下，才發現 pnpm 的 store 還留著不少檔案。這不一定是沒刪乾淨：pnpm 會把下載過的套件放在共用儲存區，讓不同專案重複使用，不會隨著某個專案一起消失。

**只想整理不再使用的套件，可以先用 pnpm store prune。想知道 pnpm 和其他開發工具各占了多少空間，則可以先用 MangoDisk 掃描，再決定清哪些。** 不必一開始就清空整個 store，更不用動到原始碼和鎖定檔。

## 一次比較各種開發工具的快取

電腦用過 npm、pnpm、Python、Rust，快取通常散在不同資料夾。打開 MangoDisk 的[深度清理](/tw/docs/features/deep-clean)，掃描後就能在同一個畫面比較支援項目的大小，不必逐一查路徑。

![MangoDisk 深度清理顯示 Windows 上開發工具快取的大小與路徑](https://assets.mangodisk.app/images/screenshots/windows/tw/light-01-deep-cleanup.jpg)

找到 pnpm 快取項目，展開查看路徑和大小。若只占一點空間，可以先留著；若已經累積不少，再依照下文判斷要整理還是清空。單純掃描不會刪除檔案。

MangoDisk 目前涵蓋 Windows 的 `%LocalAppData%\pnpm\store`，以及 macOS 的 `~/Library/pnpm/store` 和 `~/Library/Caches/pnpm`。如果你改過儲存位置，先用指令確認目前的路徑：

```bash
pnpm store path
```

這個指令只會顯示路徑。**MangoDisk 沒掃到自訂位置，不代表那裡沒有快取。** 可以用檔案總管或 Finder 開啟指令回傳的資料夾，查看占用空間。

## 用 prune 整理不再使用的套件

Windows 開啟 PowerShell，macOS 開啟「終端機」。等套件安裝和建置工作結束後，執行：

```bash
pnpm store prune
```

它會直接刪除 store 中未被參照的套件，不會移到資源回收筒或垃圾桶，也不是清空整個資料夾。之後切換分支或安裝舊版相依套件時，如果又需要這些套件，pnpm 會重新下載。[pnpm 官方文件](https://pnpm.io/cli/store)建議偶爾整理即可，不必每次安裝完就清一次。

清完仍有檔案是正常的，`prune` 原本就不是要把資料夾清到全空。如果近期要離線工作，或暫時連不上私有套件來源，先保留快取，以免之後安裝時缺少套件。

## 要清空快取，先確認能重新下載

若你已確認快取可以重新建立，想直接清掉這部分資料，可以在 MangoDisk 取消其他項目的勾選，只選取核對過的 pnpm 快取，再確認清理。

**這和 prune 不同：MangoDisk 會清理選取的快取資料夾，不會逐一判斷套件是否仍被專案使用。** 執行前先結束相關工作，確認資料夾沒有混放個人檔案，也能重新下載需要的套件。刪除方式與還原限制可參考[安全清理指南](/tw/docs/safety)。

特別留意全域虛擬儲存區：如果專案啟用了這個設定，或全域工具正在使用 store 裡的共用相依套件，清空後可能要重新安裝才能執行。這種情況不要整個刪除，請使用目前 pnpm 版本支援的整理方式；不確定就先保留。[pnpm 儲存設定說明](https://pnpm.io/settings/node-modules#enableglobalvirtualstore)有更詳細的解釋。

原始碼、`package.json` 和 `pnpm-lock.yaml` 都不是快取，應該保留。專案裡的 `node_modules/.pnpm` 也不是可以隨手清空的暫存資料夾，裡面有專案正在使用的相依套件。

## 資料夾很大，不代表能釋放同樣多的空間

pnpm 可以讓不同專案共用檔案，不必每個專案都各存一份。使用硬連結時，store 和專案資料夾可能指向磁碟上的同一份資料；刪掉其中一處，另一處仍在使用，就不會釋放這部分空間。[pnpm 的目錄結構說明](https://pnpm.io/symlinked-node-modules-structure)提供了具體範例。

因此，別把幾個資料夾顯示的容量直接加總，當成全部能清出的空間。實際效果要看清理前後的磁碟可用空間，也別因為變化不大，就接著刪除正在使用的相依套件。

pnpm 整理完還是不夠，可以用 MangoDisk 的[磁碟空間分析](/tw/docs/features/disk-analysis)查看開發資料夾。也許真正占空間的是舊專案、建置輸出，或其他工具的快取。找出占用最多的地方，比反覆清同一份快取更有幫助。

[下載 MangoDisk](/tw)，在同一個畫面查看、比較並清理分散的開發工具快取。免費開源，不必註冊或登入。

延伸閱讀：[npm 快取清理](/tw/blog/clean-npm-cache) · [Cargo 快取與 target 資料夾](/tw/blog/cargo-cache-vs-target-folder) · [開發者磁碟清理指南](/tw/blog/topics/developer-cleanup)
