遠端快取
Turborepo 的任務快取透過不重複執行相同工作來節省時間。
但有個問題:快取是本機端的。當您使用持續整合系統時,這可能會導致大量重複工作


由於 Turborepo 預設僅快取到本機檔案系統,即使所有任務輸入都相同,相同的任務 (turbo run build
) 也必須在每台機器上重新執行 (由您、您的團隊成員、您的 CI、您的 PaaS 等執行) — 這會浪費時間和資源。
小提示:
您不必使用遠端快取也能使用 Turborepo。雖然遠端快取能帶來最顯著的速度提升,但即使不使用遠端快取,您也可以加快現有的工作流程。
單一共享快取
如果您可以在整個團隊 (甚至您的 CI) 中共享單一 Turborepo 快取,會怎麼樣呢?


Turborepo 可以安全地與遠端快取 (儲存您任務結果的雲端伺服器) 通訊。這可以透過防止整個組織內重複工作來節省大量時間。
遠端快取是免費的,並且可以與託管供應商或自行託管快取一起使用。
遠端快取是 Turborepo 的強大功能,但能力越大,責任越大。請確保您先正確地進行快取,並仔細檢查環境變數的處理方式。另請記住,Turborepo 將日誌視為工件,因此請注意您在主控台中輸出的內容。
Vercel
Vercel 遠端快取在所有方案中皆可免費使用,即使您沒有在 Vercel 上託管您的應用程式也一樣。請按照以下步驟為您的儲存庫啟用遠端快取。
用於本機開發
若要將您的本機 Turborepo 連結到您的遠端快取,請使用您的 Vercel 帳戶驗證 Turborepo CLI
如果您沒有全域安裝 turbo
,您也可以使用您的套件管理器
如果您的遠端快取設定為使用單一登入,您將需要執行 npx turbo login --sso-team=team-name
,以便取得具有正確權限的快取權杖。
現在,將您的 Turborepo 連結到您的遠端快取
啟用後,對您目前正在快取的套件進行一些變更,並使用 turbo run
對其執行任務。您的快取工件現在將會儲存在本機和您的遠端快取中。
若要驗證,請使用以下命令刪除您的本機 Turborepo 快取
然後,再次執行相同的建置。如果一切運作正常,turbo
應該不會在本機執行任務。相反地,它會從您的遠端快取下載日誌和工件,並將其重新播放給您。
Vercel 上的遠端快取
如果您是在 Vercel 上建置和託管您的應用程式,一旦您使用 turbo
,遠端快取將會自動為您設定。請參閱Vercel 文件以取得更多資訊。
工件完整性和真實性驗證
Turborepo 可以在將工件上傳到遠端快取之前,使用密鑰簽署工件。Turborepo 在工件上使用 HMAC-SHA256
簽章,並使用您提供的密鑰。Turborepo 將在下載時驗證遠端快取工件的完整性和真實性。任何驗證失敗的工件都將被 Turborepo 忽略,並視為快取未命中。
若要啟用此功能,請在您的 turbo.json
設定中設定 remoteCache
選項,以包含 signature: true
。然後透過宣告 TURBO_REMOTE_CACHE_SIGNATURE_KEY
環境變數來指定您的密鑰。
遠端快取 API
任何符合 Turborepo 遠端快取 API 規格的 HTTP 伺服器都可以實作遠端快取。
使用 Vercel 託管的遠端快取
Vercel,Turborepo 的建立者和維護者,提供與 Turborepo 完全相容的託管遠端快取。
使用Vercel 遠端快取是零配置的,並且透過開放原始碼的 Vercel 遠端快取 SDK 自動與 Vercel 部署整合。
深入了解 Vercel 上的 Turborepo 或部署免費範本來試用看看。
自行託管
您也可以自行託管您的遠端快取,並使用 --manual
旗標登入,以提供 API URL、團隊和權杖資訊。
OpenAPI 規格
您可以在此處找到 API 的 OpenAPI 規格。目前,所有版本的 turbo
都與 v8
端點相容。
社群實作
Turborepo 社群已建立遠端快取的開放原始碼實作。