略過任務
建置快取 可以大幅加快你的任務速度,但使用 npx turbo-ignore
你的效果會更好。如果你的工作空間不受程式碼變更影響,你可以完全略過執行任務。
假設你想要略過 web
工作空間的單元測試,因為 web
應用程式(或其套件相依性)沒有任何變更。如果你已經使用 遠端快取(在新分頁中開啟),你可能會獲得快取命中,但你仍然會花時間建置 CI 容器、安裝 npm
相依性,以及其他可能需要花費一段時間的事情。
理想情況下,我們會快速檢查是否需要在第一時間執行任何這些工作。
在我們簽出儲存庫後,但在任何其他工作之前,我們可以花幾秒鐘檢查我們的 web
測試是否自父提交以來有變更。
npx turbo-ignore web --task=test
此命令將
- 篩選
web
工作空間。 - 為你的
test
任務建立dry
輸出,與你的父提交進行比較。 - 剖析輸出以確定哪些套件已變更。
- 如果偵測到變更,則以
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
退出。
自訂行為
若要指定工作區,您可以將它加入您的指令,如下所示
npx turbo-ignore web
其中 web
是執行預設 build
任務的工作區名稱。
如果您想要變更任務,請使用 --task
旗標來指定 turbo-ignore
將呼叫的任務。
在 Vercel 上使用 turbo-ignore
若要在 Vercel 上使用 npx turbo-ignore
,您可以使用 忽略的建置步驟(在新分頁中開啟) 功能。Vercel 會自動推論正確的引數,以成功執行 turbo-ignore
。
自訂行為
在 Vercel 上,您可以指定 --fallback
旗標,以在預設比較不可用時,提供 Vercel 一個 git 參照進行比較。預設情況下,Vercel 會與最近部署的 SHA 進行比較,因此這對於避免對分支進行首次提交的部署等使用案例很有用。