略過任務
快取大幅加快您的任務速度 - 但您或許可以透過使用 npx turbo-ignore
來更快。如果工作區不受您的程式碼變更影響,您可以完全略過執行任務。
假設當您的 web
應用程式(或其套件相依性)沒有任何變更時,您想要略過 web
工作區的單元測試。如果您已經使用遠端快取,您可能會獲得快取命中 - 但您仍然會花時間配置 CI 容器、安裝 npm
相依性,以及其他可能需要一段時間的事情。
理想情況下,您會快速檢查以查看是否首先需要完成任何工作。
在您簽出儲存庫之後,但在任何其他工作之前,您可以花幾秒鐘檢查您的 web
測試自父提交以來是否已變更。
此命令將會
- 篩選
web
工作區。 - 針對您的
test
任務,與您的父提交相比,建立dry
輸出。 - 剖析輸出以判斷哪些套件已變更。
- 如果偵測到變更,則以
1
代碼結束。否則,以0
結束。
雖然您可能已經能夠為此任務命中 >>> FULL TURBO
快取,但您只是節省了執行 CI 所需的所有其他設定任務的時間。
使用 turbo-ignore
若要略過未受影響的工作,首先請確保您的 Git 歷史記錄在機器上可用。然後,執行 npx turbo-ignore
。
turbo-ignore
結合使用 --filter
和 --dry=json
標記,以尋找從父提交到目前提交的變更,以識別受影響的套件。依預設,turbo-ignore
會尋找目前工作目錄中建置任務的差異,但您可以使用標記自訂此行為。
以下是將會建置和執行的命令範例
請注意,模擬執行不會執行建置任務。相反地,它會在幾秒鐘內檢查您的套件,以查看您的程式碼變更是否會影響您的建置(或其他任務)。
如果 turbo-ignore
發現可以略過任務,它將以 0
代碼結束程序。如果已找到變更,程序將以 1
結束。
在 Vercel 上,將會使用先前部署的 SHA 而不是父提交。
自訂行為
若要指定工作區,您可以將其新增至您的命令,例如
其中 web
是您的工作區名稱,執行預設的 build
任務。
如果您想要變更任務,請使用 --task
標記來指定 turbo-ignore
將會調用的命令任務。
在 Vercel 上使用 turbo-ignore
若要在 Vercel 上使用 npx turbo-ignore
,您可以使用忽略建置步驟功能。Vercel 將會自動推斷正確的引數以成功執行 turbo-ignore
。
自訂行為
當不在 Vercel 上時,請使用 --fallback
標記指定用於比較的提交。
在 Vercel 上,您可以指定 --fallback
標記,以便在預設比較不可用時,為 Vercel 提供要比較的 git ref。依預設,Vercel 會與最近部署的 SHA 進行比較,因此這對於避免分支首次提交的部署等用例非常有用。