Turborepo logo

略過任務

快取大幅加快您的任務速度 - 但您或許可以透過使用 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 ref。依預設,Vercel 會與最近部署的 SHA 進行比較,因此這對於避免分支首次提交的部署等用例非常有用。

小時

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

本頁內容