Bun

全域快取

所有從註冊表下載的套件都儲存在全域快取中,路徑為 ~/.bun/install/cache,或由環境變數 BUN_INSTALL_CACHE_DIR 定義的路徑。它們儲存在類似 ${name}@${version} 的子目錄中,因此可以快取套件的多個版本。

設定快取行為 (bunfig.toml)

減少重複下載

Bun 致力於避免多次重新下載套件。安裝套件時,如果快取已包含 package.json 指定範圍內的版本,Bun 將使用快取中的套件,而不是再次下載。

安裝詳細資訊

快速複製

一旦套件下載到快取中,Bun 仍然需要將這些檔案複製到 node_modules 中。Bun 使用可用的最快系統調用來執行此任務。在 Linux 上,它使用硬連結;在 macOS 上,它使用 clonefile

節省磁碟空間

由於 Bun 在 Linux 和 Windows 上使用硬連結將模組「複製」到專案的 node_modules 目錄中,因此套件的內容僅存在於磁碟上的單一位置,大大減少了專用於 node_modules 的磁碟空間量。

此優點也適用於 macOS,但也有例外。它使用 clonefile,它是寫入時複製,這表示它不會佔用磁碟空間,但會計入磁碟機的限制。如果某些東西嘗試修補 node_modules/*,這種行為很有用,因為這樣就不可能影響其他安裝。

安裝策略