Mac 上的 JetBrains 快取(IntelliJ、WebStorm、PyCharm)
IntelliJ IDEA、WebStorm、PyCharm 這些 JetBrains IDE 會在 Mac 上留下好幾個好幾 GB 的目錄,其中只有一部分能安全清理。快取和索引下次啟動會重建;設定、外掛和專案資料不會。分清這層差別,才不會把一次清理變成丟設定或弄壞專案。
這篇文章是通用開發快取指南的 JetBrains 專篇。文中的「Mole」只指 mole.fit 上的 Mole for Mac,以及它自帶的 mo 命令列工具;文中不給每個 IDE 的 GB 數字,因為差別太大沒有參考價值,你在自己機器上測。
JetBrains 存了什麼,哪些不只是快取
一個 JetBrains 安裝是好幾個復原成本差別很大的目錄。把它們當成一個資料夾,正是清理出錯的地方。
| 層 | 存的是什麼 | 能重建嗎? |
|---|---|---|
| 快取 | 編譯好的檢索資料和暫存工作檔案 | 能,下次啟動 |
| 索引 | IDE 為瀏覽程式碼建立的專案索引 | 能,重新索引即可 |
| 日誌 | 排查問題用的診斷文字 | 能,可安全清理 |
| 設定 | 按鍵配置、程式碼風格、偏好設定 | 不能,這是你的設定 |
| 外掛 | 已裝外掛及其資料 | 部分,重裝會丟本機外掛狀態 |
| 專案資料 | .idea 資料夾和 Local History |
不能,這是專案和個人成果 |
前三層會自我重建,是安全的清理對象。後三層是你的設定和成果,無論放在哪個資料夾裡都不是快取。
優先用 IDE 自帶的工具
刪任何資料夾之前,先用 IDE 內建的入口。File > Invalidate Caches 會清掉快取和索引並提議重新啟動,這是不動設定就修好過時的索引的受支援做法。具體選單文案以你當前的 IntelliJ、WebStorm 或 PyCharm 版本為準,選單標籤會隨版本變化。
如果你用 Toolbox App 管理多個 JetBrains 產品,它也提供逐產品的清理和各安裝的位置。手動查看任何資料夾前先結束 IDE,免得刪到執行中程序還占用的檔案。
在 Mac 上找到系統目錄
JetBrains 按版本記錄它的目錄位置,而產品加版本的具體子資料夾在每台機器上都不同,所以透過 IDE 定位你自己的(Help 會指向日誌和設定資料夾),別去貼過時的絕對路徑。在當前版本裡,macOS 上的父資料夾是 ~/Library/Caches/JetBrains 和 ~/Library/Application Support/JetBrains,日誌在 ~/Library/Logs/JetBrains。
動手前先量一量父目錄,看重量到底在哪裡:
du -sh ~/Library/Caches/JetBrains ~/Library/Application\ Support/JetBrains
Caches 的大小也包含 Local History,不能整個當成可刪的快取;設定和外掛則在 Application Support。
安全順序
- 透過 IDE 走一遍 Invalidate Caches,瀏覽不順就重新索引一次。
- 量一量 JetBrains 的父資料夾,知道空間在哪。
- 在 IDE 的對話框裡清快取和索引,不勾選另外刪除 Local History 的選項;日誌另外核對。
- 絕不隨手刪
.idea或 Local History,那是專案和個人成果。 - 重新啟動 IDE,確認空間確實回來了,再繼續下一步。
和套件管理器、散落的 node_modules 的重疊屬於另一篇:如何清理 Mac 上的開發快取講 npm、Cargo、pip 和 Gradle,如何清理 Xcode講 DerivedData(如果你也用蘋果工具鏈建置)。IDE 不是 JDK,移除執行時是另一件事,見在 Mac 上解除安裝 Java。
磁碟檢視什麼時候有用
一旦你知道 JetBrains 的資料夾很大,磁碟檢視就能幫你看清是哪個產品、哪個版本占了重量。Mole 的 Analyze 會把大目錄連同路徑和大小列出來供複核,Clean 則列出快取候選項;掃描免費、不需要授權,刪什麼由你決定。這和 mo purge 是兩回事,後者掃的是可重建的專案建置產物而不是 IDE 快取,見講清 Mac 上的 purge。Mole 複核什麼、又拒絕碰什麼,見Mole 安全嗎。
延伸閱讀
- 如何清理 Mac 上的開發快取:套件管理器和
node_modules那一面。 - 哪些 Mac 快取可以安全刪除:可重建與否的通用規則。
- Mole 安全嗎:一個複核式刪除工具會刪什麼、不會刪什麼。
常見問題
清快取會刪掉我的專案嗎?
一般的 Invalidate Caches 不會刪專案檔案或 Local History,但 Local History 就在系統目錄裡,對話框另有刪除它的選項,別勾選。
用 Invalidate Caches 還是刪系統目錄?
Invalidate Caches 會在重新啟動時清掉快取和索引,只要不勾選額外選項,Local History 就會保留;手動刪掉整個系統目錄則可能把它一起刪掉。設定和外掛通常放在 Application Support。
多個 IDE 或 Toolbox:清一次還是逐產品清?
每個產品和版本各有子資料夾,快取是按產品累積的。透過各個 IDE 或 Toolbox App 逐產品清理,動手前量一量 JetBrains 的父資料夾,看清到底哪個安裝大。