VS Code 越用越大,哪些是快取,哪些要留著
VS Code 用久了,使用者目錄裡除了擴充功能,還有快取、記錄、工作區狀態和擴充功能自己的資料。幾個目錄都變大以後,直接刪除整個 Code 資料夾會連設定一起重設。想減少佔用,先把可重新產生的內容和希望保留的開發環境分開。想解決卡頓則先找正在工作的擴充功能。兩個目標不要混在同一次清理裡。
程式、擴充功能和使用者資料不在同一個位置
一般 Windows 安裝的 VS Code,程式檔案跟安裝方式有關,擴充功能預設放在 %USERPROFILE%\.vscode\extensions,使用者資料通常在 %APPDATA%\Code。Insiders、Portable Mode、自訂 --user-data-dir 或 --extensions-dir 的設定要另行核對,不能只用一個預設路徑代表所有安裝。
| 內容 | 大致作用 | 處理時保留什麼 |
|---|---|---|
| 已安裝擴充功能 | 編輯、偵錯、語言支援等功能 | 仍使用的擴充功能及其安裝來源 |
| 使用者設定、快速鍵和程式碼片段 | 自己調整的開發習慣 | 可匯出和可復原的設定 |
| 工作區與擴充功能狀態 | 專案狀態、擴充功能持久資料 | 不確定內容先保留,按擴充功能文件匯出 |
| 下載快取、程式快取和記錄 | 複用下載、執行結果和診斷記錄 | 正在使用的內容與排查需要的記錄 |
官方擴充功能說明給出預設安裝位置。命令列說明解釋了自訂目錄和設定檔的作用。專案裡的 .vscode 目錄又是另一回事,通常儲存專案設定,不能因為名稱相同就與使用者目錄裡的擴充功能一起處理。
先把目前擴充功能和設定留一份記錄
在已經確認對應安裝的終端機裡執行下面的唯讀命令,查看擴充功能及版本和處理程序資訊。輸出可以留作核對材料,但擴充功能清單沒有儲存擴充功能本體、帳戶狀態或工作資料。
code --list-extensions --show-versions
code --status
VS Code 的設定檔(profile)按工作場景儲存一組設定與擴充功能選擇,不等同於單一 settings.json。有多套設定時,在擴充功能檢視核對目前設定檔,必要時按官方命令列說明指定。預設清單不是所有設定的完整盤點。再從 Profiles 的匯出入口儲存需要的設定、快速鍵、程式碼片段和擴充功能選擇,開啟匯出的設定核對內容。涉及專案檔案和擴充功能儲存的資料仍需各自備份。
排查擴充功能問題,先停用再決定解除安裝
同一個專案在啟動或編輯時卡頓,可以在擴充功能檢視裡對懷疑對象選擇「停用(工作區)」,按提示重新啟動擴充功能,再重複剛才的操作。一次停用一個擴充功能,觀察診斷資訊和回應是否一起變化。確定不用以後才從擴充功能管理功能表解除安裝。
停用保留了擴充功能檔案,所以它適合比較行為,並不會直接清理出擴充功能安裝空間。擴充功能管理說明區分了全域與工作區停用、解除安裝和重新啟用。解除安裝前也要知道相關語言偵錯或格式化功能是否還在用。
本機、WSL 和開發容器可能各自安裝擴充功能。在擴充功能檢視裡先看歸屬,不能刪了 Windows 本機的目錄,就認定遠端環境裡的那份也移除了。
擴充功能狀態目錄裡不一定都是快取
VS Code 的 ExtensionContext 介面允許擴充功能儲存全域狀態與工作區狀態。具體資料含義由擴充功能決定,可能是索引,也可能是歷程、工作階段或其他需要保留的內容。看到 User\globalStorage、User\workspaceStorage 這類目錄變大時,先找到所屬擴充功能與文件,不要按資料夾名稱直接批次清空。
VS Code 的完整解除安裝說明把刪除使用者資料當成重設步驟。這會改變開發環境,不能包裝成一般快取清理。想重設時先匯出、備份並確認復原方式。仍在使用其他安裝或共用目錄時也先核對歸屬。
清理之後又裝回來,檢查同步與設定檔
Settings Sync可以同步擴充功能清單、啟用狀態和設定檔的部分內容。發生合併或在另一台電腦繼續使用時,需要查看同步資料和目前設定檔,不要把重新出現的擴充功能直接歸為解除安裝失效。同步也不涵蓋所有遠端擴充功能與擴充功能私有檔案。開著同步不等於已經備份了整個開發環境。
Mole for Windows 辨識 VS Code 的 Cache、CachedData、擴充功能下載快取等具體位置。執行中的程式快取有對應保護。清理範圍不能擴大成整個使用者資料目錄。處理以前儲存並正常結束編輯器,留下排查要用的記錄,隨後重新開啟原專案,確認設定、偵錯、終端機和需要的擴充功能都正常,再完成一次原來的建置或編輯工作。
如果空間主要來自語言工具的套件快取,看開發快取與專案相依。如果是開發容器裡的環境與磁碟區,看Docker/WSL 的空間層次。