略過任務
快取可以大幅加速您的任務,但您或許可以使用 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 參考。預設情況下,Vercel 會與最近部署的 SHA 進行比較,因此這適用於避免為分支的第一次提交進行部署的情況。
這有幫助嗎?