Turborepo logo

遠端快取

Turborepo 的任務快取透過不重複執行相同工作來節省時間。

但有個問題:快取是本機端的。當您使用持續整合系統時,這可能會導致大量重複工作

Local caching creates a cache on each system.

由於 Turborepo 預設僅快取到本機檔案系統,即使所有任務輸入都相同,相同的任務 (turbo run build) 也必須在每台機器上重新執行 (由您、您的團隊成員、您的 CI、您的 PaaS 等執行) — 這會浪費時間和資源

小提示: 

您不必使用遠端快取也能使用 Turborepo。雖然遠端快取能帶來最顯著的速度提升,但即使不使用遠端快取,您也可以加快現有的工作流程。

單一共享快取

如果您可以在整個團隊 (甚至您的 CI) 中共享單一 Turborepo 快取,會怎麼樣呢?

Remote caching creates a shared cache for your entire team.

Turborepo 可以安全地與遠端快取 (儲存您任務結果的雲端伺服器) 通訊。這可以透過防止整個組織內重複工作來節省大量時間。

遠端快取是免費的,並且可以與託管供應商自行託管快取一起使用。

遠端快取是 Turborepo 的強大功能,但能力越大,責任越大。請確保您先正確地進行快取,並仔細檢查環境變數的處理方式。另請記住,Turborepo 將日誌視為工件,因此請注意您在主控台中輸出的內容。

Vercel

Vercel 遠端快取在所有方案中皆可免費使用,即使您沒有在 Vercel 上託管您的應用程式也一樣。請按照以下步驟為您的儲存庫啟用遠端快取。

用於本機開發

若要將您的本機 Turborepo 連結到您的遠端快取,請使用您的 Vercel 帳戶驗證 Turborepo CLI

終端機
turbo login

如果您沒有全域安裝 turbo,您也可以使用您的套件管理器

終端機
npx turbo login

如果您的遠端快取設定為使用單一登入,您將需要執行 npx turbo login --sso-team=team-name,以便取得具有正確權限的快取權杖。

現在,將您的 Turborepo 連結到您的遠端快取

終端機
turbo link

啟用後,對您目前正在快取的套件進行一些變更,並使用 turbo run 對其執行任務。您的快取工件現在將會儲存在本機您的遠端快取中。

若要驗證,請使用以下命令刪除您的本機 Turborepo 快取

終端機
rm -rf ./.turbo/cache

然後,再次執行相同的建置。如果一切運作正常,turbo 應該不會在本機執行任務。相反地,它會從您的遠端快取下載日誌和工件,並將其重新播放給您。

Vercel 上的遠端快取

如果您是在 Vercel 上建置和託管您的應用程式,一旦您使用 turbo,遠端快取將會自動為您設定。請參閱Vercel 文件以取得更多資訊。

工件完整性和真實性驗證

Turborepo 可以在將工件上傳到遠端快取之前,使用密鑰簽署工件。Turborepo 在工件上使用 HMAC-SHA256 簽章,並使用您提供的密鑰。Turborepo 將在下載時驗證遠端快取工件的完整性和真實性。任何驗證失敗的工件都將被 Turborepo 忽略,並視為快取未命中。

若要啟用此功能,請在您的 turbo.json 設定中設定 remoteCache 選項,以包含 signature: true。然後透過宣告 TURBO_REMOTE_CACHE_SIGNATURE_KEY 環境變數來指定您的密鑰。

./turbo.json
{
  "remoteCache": {
    "signature": true
  }
}

遠端快取 API

任何符合 Turborepo 遠端快取 API 規格的 HTTP 伺服器都可以實作遠端快取。

使用 Vercel 託管的遠端快取

Vercel,Turborepo 的建立者和維護者,提供與 Turborepo 完全相容的託管遠端快取。

使用Vercel 遠端快取是零配置的,並且透過開放原始碼的 Vercel 遠端快取 SDK 自動與 Vercel 部署整合。

深入了解 Vercel 上的 Turborepo部署免費範本來試用看看。

自行託管

您也可以自行託管您的遠端快取,並使用 --manual 旗標登入,以提供 API URL、團隊和權杖資訊。

終端機
turbo login --manual

OpenAPI 規格

您可以在此處找到 API 的 OpenAPI 規格。目前,所有版本的 turbo 都與 v8 端點相容。

社群實作

Turborepo 社群已建立遠端快取的開放原始碼實作。

小時

總計節省的運算時間
開始使用
遠端快取 →

本頁內容