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

舊專案刪掉了,磁碟卻沒空出多少;找了一下,才發現 pnpm 的 store 還留著不少檔案。這不一定是沒刪乾淨:pnpm 會把下載過的套件放在共用儲存區,讓不同專案重複使用,不會隨著某個專案一起消失。
只想整理不再使用的套件,可以先用 pnpm store prune。想知道 pnpm 和其他開發工具各占了多少空間,則可以先用 MangoDisk 掃描,再決定清哪些。 不必一開始就清空整個 store,更不用動到原始碼和鎖定檔。
一次比較各種開發工具的快取
電腦用過 npm、pnpm、Python、Rust,快取通常散在不同資料夾。打開 MangoDisk 的深度清理,掃描後就能在同一個畫面比較支援項目的大小,不必逐一查路徑。

找到 pnpm 快取項目,展開查看路徑和大小。若只占一點空間,可以先留著;若已經累積不少,再依照下文判斷要整理還是清空。單純掃描不會刪除檔案。
MangoDisk 目前涵蓋 Windows 的 %LocalAppData%\pnpm\store,以及 macOS 的 ~/Library/pnpm/store 和 ~/Library/Caches/pnpm。如果你改過儲存位置,先用指令確認目前的路徑:
pnpm store path
這個指令只會顯示路徑。MangoDisk 沒掃到自訂位置,不代表那裡沒有快取。 可以用檔案總管或 Finder 開啟指令回傳的資料夾,查看占用空間。
用 prune 整理不再使用的套件
Windows 開啟 PowerShell,macOS 開啟「終端機」。等套件安裝和建置工作結束後,執行:
pnpm store prune
它會直接刪除 store 中未被參照的套件,不會移到資源回收筒或垃圾桶,也不是清空整個資料夾。之後切換分支或安裝舊版相依套件時,如果又需要這些套件,pnpm 會重新下載。pnpm 官方文件建議偶爾整理即可,不必每次安裝完就清一次。
清完仍有檔案是正常的,prune 原本就不是要把資料夾清到全空。如果近期要離線工作,或暫時連不上私有套件來源,先保留快取,以免之後安裝時缺少套件。
要清空快取,先確認能重新下載
若你已確認快取可以重新建立,想直接清掉這部分資料,可以在 MangoDisk 取消其他項目的勾選,只選取核對過的 pnpm 快取,再確認清理。
這和 prune 不同:MangoDisk 會清理選取的快取資料夾,不會逐一判斷套件是否仍被專案使用。 執行前先結束相關工作,確認資料夾沒有混放個人檔案,也能重新下載需要的套件。刪除方式與還原限制可參考安全清理指南。
特別留意全域虛擬儲存區:如果專案啟用了這個設定,或全域工具正在使用 store 裡的共用相依套件,清空後可能要重新安裝才能執行。這種情況不要整個刪除,請使用目前 pnpm 版本支援的整理方式;不確定就先保留。pnpm 儲存設定說明有更詳細的解釋。
原始碼、package.json 和 pnpm-lock.yaml 都不是快取,應該保留。專案裡的 node_modules/.pnpm 也不是可以隨手清空的暫存資料夾,裡面有專案正在使用的相依套件。
資料夾很大,不代表能釋放同樣多的空間
pnpm 可以讓不同專案共用檔案,不必每個專案都各存一份。使用硬連結時,store 和專案資料夾可能指向磁碟上的同一份資料;刪掉其中一處,另一處仍在使用,就不會釋放這部分空間。pnpm 的目錄結構說明提供了具體範例。
因此,別把幾個資料夾顯示的容量直接加總,當成全部能清出的空間。實際效果要看清理前後的磁碟可用空間,也別因為變化不大,就接著刪除正在使用的相依套件。
pnpm 整理完還是不夠,可以用 MangoDisk 的磁碟空間分析查看開發資料夾。也許真正占空間的是舊專案、建置輸出,或其他工具的快取。找出占用最多的地方,比反覆清同一份快取更有幫助。
下載 MangoDisk,在同一個畫面查看、比較並清理分散的開發工具快取。免費開源,不必註冊或登入。
延伸閱讀:npm 快取清理 · Cargo 快取與 target 資料夾 · 開發者磁碟清理指南