Turborepo

略過任務

快取可以大幅加速您的任務,但您或許可以使用 npx turbo-ignore 來達到更快的速度。如果程式碼變更沒有影響到工作區,您可以完全略過執行該任務。

假設您想要在 web 應用程式(或其套件相依性)沒有任何變更時,略過 web 工作區的單元測試。如果您已經在使用遠端快取,您可能會獲得快取命中,但您仍然會花時間佈建 CI 容器、安裝 npm 相依性,以及其他可能需要一段時間才能完成的事情。

理想情況下,您會先快速檢查一下,看看是否需要先執行任何這些工作。


在您簽出儲存庫之後,但在任何其他工作之前,您可以花幾秒鐘的時間來檢查您的 web 測試自父提交以來是否有變更。

終端機
npx turbo-ignore web --task=test

此命令將會

  1. 篩選出 web 工作區。
  2. 相較於您的父提交,為您的 test 任務建立 dry 輸出。
  3. 剖析輸出以判斷哪些套件已變更。
  4. 如果偵測到變更,則以 1 代碼結束。否則,以 0 結束。

雖然您可能已經能夠為此任務命中 >>> FULL TURBO 快取,但您剛剛透過執行 CI 所需的所有其他設定任務節省了時間。

使用 turbo-ignore

若要略過不受影響的工作,請先確保您的 Git 歷史記錄在機器上可用。然後,執行 npx turbo-ignore

turbo-ignore 使用 --filter--dry=json 旗標的組合,找出從父提交到目前提交的變更,以識別受影響的套件。預設情況下,turbo-ignore 會找出目前工作目錄中建置任務的差異,但您可以使用旗標自訂此行為

以下是將建立並執行的命令範例

終端機
npx turbo run build --filter=@example/web...3c8387ffd98b751305fe3f0284befdd00cbd4610 --dry=json

請注意,模擬執行並不會執行建置任務。相反地,它只會檢查您的套件,看看您的程式碼變更是否會在幾秒鐘內影響您的建置(或其他任務)。

如果 turbo-ignore 發現可以略過該任務,它將會以 0 代碼結束程序。如果發現變更,則程序將會以 1 結束。

在 Vercel 上,會使用先前部署的 SHA 來取代父提交。

自訂行為

若要指定工作區,您可以將其新增至您的命令,例如

終端機
npx turbo-ignore web

其中 web 是您執行預設 build 任務的工作區名稱。

如果您想要變更任務,請使用 --task 旗標來指定 turbo-ignore 將叫用的命令任務。

在 Vercel 上使用 turbo-ignore

若要在 Vercel 上使用 npx turbo-ignore,您可以使用忽略的建置步驟功能。Vercel 會自動推斷出正確的引數,以成功執行 turbo-ignore

自訂行為

如果不在 Vercel 上,請使用 --fallback 旗標來指定用於比較的提交。

在 Vercel 上,您可以指定 --fallback 旗標,以便在預設比較不可用時,為 Vercel 提供用於比較的 git 參考。預設情況下,Vercel 會與最近部署的 SHA 進行比較,因此這適用於避免為分支的第一次提交進行部署的情況。

小時

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

本頁內容