run
執行在 turbo.json
中指定的任務。
- [tasks]:Turborepo 可以同時執行一個或多個任務。若要透過
turbo
執行任務,必須在turbo.json
中指定。 - [options]:選項用於控制
turbo run
命令的行為。可用的旗標選項如下所述。 - [-- [args passed to tasks]]:您也可以將參數傳遞給底層的腳本。請注意,所有參數都將傳遞給所有任務。
注意事項
turbo run
是 turbo
的別名。turbo run build lint check-types
與 turbo build lint check-types
相同。我們建議在 CI 管道中使用 turbo run
,並在本機上使用全域的 turbo
以方便使用。
如果未提供任何任務,turbo
將會顯示儲存庫中可用的套件任務。
選項
--affected
自動篩選,只針對目前分支上變更影響的套件。
預設情況下,此旗標等同於 --filter=[main...HEAD]
。這會考慮 Git 觀點中 main
和 HEAD
之間的變更。
您可以使用各自的系統環境變數覆寫預設的 base 和 head。
比較需要 base 和 head 之間的所有內容都存在於簽出中。如果簽出太淺,則所有套件都會被視為已變更。
--cache <options>
預設值:local:rw,remote:rw
指定執行時的快取來源。接受以逗號分隔的選項列表
local
:使用本機檔案系統快取remote
:使用遠端快取
當省略快取來源時,讀取和寫入都會停用。
快取來源使用以下值
rw
:讀取和寫入r
:僅讀取w
:僅寫入- 無 (
local:
):不使用快取。等同於省略快取來源選項。
--cache-dir <path>
預設值:.turbo/cache
指定檔案系統快取目錄。
變更時請確保目錄在您的 .gitignore
中。
也可以透過 TURBO_CACHE_DIR=example/path
系統變數設定相同的行為。
--concurrency <number | percentage>
預設值:10
設定/限制任務執行的最大並行數。必須是大於或等於 1
的整數,或是像 50%
的百分比值。
- 使用
1
強制循序執行(一次執行一個任務)。 - 使用
100%
以使用所有可用的邏輯處理器。 - 如果也傳遞了
--parallel
旗標,則會忽略此選項。
--continue
預設值:false
在出現錯誤的情況下(例如,任務的非零結束代碼)繼續執行任務。
當 --continue
為 true
時,turbo
將會以執行期間遇到的最高結束代碼值結束。
注意事項
指定--parallel
旗標將會自動將 --continue
設定為 true
,除非明確設定為 false
。
--cwd <path>
預設值:根目錄 turbo.json
的目錄
設定命令的工作目錄。
--dangerously-disable-package-manager-check
Turborepo 使用儲存庫的鎖定檔來決定快取行為、套件圖等。因此,我們使用packageManager
欄位來協助您穩定 Turborepo。
為了協助增量移轉,或是您無法使用 packageManager
欄位的情況,您可以使用 --dangerously-disable-package-manager-check
來選擇不進行此檢查,並承擔不穩定鎖定檔產生不可預測行為的風險。停用時,Turborepo 會盡力探索儲存庫的目標套件管理器。
您也可以使用 turbo.json
中的設定或TURBO_DANGEROUSLY_DISABLE_PACKAGE_MANAGER_CHECK
環境變數來選擇不進行此檢查,以獲得更廣泛的涵蓋範圍。
--dry / --dry-run
顯示關於將要執行的套件和任務的詳細資訊,而不是執行任務。
指定 --dry=json
以取得 JSON 格式的輸出。
任務詳細資訊包含有用的資訊,例如(列表不詳盡)
欄位 | 說明 |
---|---|
taskId | 任務的 ID,格式為 package-name#task-name |
task | 要執行的任務名稱 |
package | 要執行任務的套件 |
hash | 任務的雜湊值(用於快取) |
hashOfExternalDependencies | 全域雜湊值 |
command | 用於執行任務的命令 |
inputs | 用於雜湊的檔案輸入列表 |
outputs | 已快取的檔案輸出列表 |
dependencies | 必須在該任務之前執行的任務 |
dependents | 必須在該任務之後執行的任務 |
environmentVariables | 在 env 和 passThroughEnv 中指定的環境變數列表 |
--env-mode <option>
類型:字串
控制任務執行階段中可用的環境變數。
注意事項
PATH
、SHELL
和 SYSTEMROOT
永遠可供任務使用。
也可以透過 TURBO_ENV_MODE=strict
系統變數設定相同的行為。
strict
只有在以下索引鍵中指定的環境變數才可供任務使用
如果指定或推斷出 Strict Mode,則所有任務都會以 strict
模式執行,無論其設定為何。
loose
機器上的所有環境變數都可在任務的執行階段中使用。
當環境變數未在上述 strict
中列出的索引鍵快取時,這可能會很危險。您在 loose
模式下更可能從快取還原具有錯誤環境變數的套件版本。
--filter <string>
指定要從儲存庫圖形中執行的目標。可以合併多個篩選器,以選擇不同的目標集。
可以合併篩選器,以建立套件、目錄和 Git 提交的組合。
目標類型 | 說明 | 範例 |
---|---|---|
套件 | 依其在 package.json 中的名稱選取套件。 | turbo run build --filter=ui |
目錄 | 指定要擷取執行任務的套件清單的目錄。當與其他篩選器搭配使用時,必須以 {} 包裹。 | turbo run build --filter=./apps/* |
Git 提交 | 使用 Git 指定符,指定具有原始碼控制變更的套件。必須以 [] 包裹。 | turbo run build --filter=[HEAD^1] |
注意事項
-F
是 --filter
的別名。篩選的微語法
!
:從選取中否定目標。...
使用套件:選取套件圖中相對於目標的所有套件。在套件名稱之前使用...
將會選取目標的從屬項,而在套件名稱之後使用...
將會選取目標的相依性。...
使用 Git 提交:使用[<from commit>]...[<to commit>]
選取範圍。^
:在使用...
時從選取中省略目標。
如需深入討論和篩選的實際使用案例,請造訪執行任務頁面。
使用任務識別碼
您也可以依 package-name#task-name
的格式,針對特定套件執行特定任務。
注意事項
這也會執行任務的相依性。若要在不執行相依性的情況下執行任務,請使用--only
旗標。
進階篩選範例
您可以合併多個篩選器以進一步精簡目標。多個篩選器會合併為聯集,否定的篩選器會從聯集的結果中移除套件。
--force
忽略現有的快取成品,並重新執行所有任務。
注意事項
--force
將會覆寫現有的任務快取。
也可以透過TURBO_FORCE
環境變數設定相同的行為。
--framework-inference
預設值:true
指定是否對任務執行框架推斷。
當 false
時,會停用自動包含環境變數。
--global-deps <檔案 glob>
指定要雜湊的全域檔案系統依賴項的 glob 模式。對於影響多個套件的 .env
和根目錄中的檔案很有用。
我們建議您在 turbo.json
的 globalDependencies
鍵中指定您希望包含在雜湊中的檔案 glob 模式,以確保它們始終被考慮到。
--graph <檔案類型>
預設值:jpg
此命令將生成目前任務圖的 svg
、png
、jpg
、pdf
、json
、html
或其他支援的輸出格式。
如果未安裝 Graphviz,或未提供檔案名稱,則此命令會將 dot 圖列印到 stdout
。
已知錯誤:目前所有可能的任務節點都會被新增到圖表中,即使該腳本實際上不存在於給定的套件中。這不會影響執行,但圖表可能會高估所涉及的套件和任務數量。
--log-order <選項>
預設值:auto
設定記錄輸出的順序。
預設情況下,turbo
將在 CI 環境中使用 grouped
記錄,而在其他任何地方使用 stream
記錄。當使用終端 UI 時,此標誌不適用。
選項 | 說明 |
---|---|
stream | 在可用時立即顯示輸出 |
grouped | 按任務分組輸出 |
auto | Turbo 根據其自身的啟發式方法決定 |
--log-prefix <選項>
預設值:auto
控制執行任務時產生的記錄行的 <package>:<task>:
前綴。
選項 | 說明 |
---|---|
prefix | 強制在記錄前面加上前綴 |
none | 無前綴 |
auto | turbo 根據其自身的啟發式方法決定 |
--no-cache
已棄用
此標誌已棄用,並將在未來的重大版本中移除。請改用 --cache
標誌。
預設值 false
不快取任務的結果。
--daemon
和 --no-daemon
turbo
可以執行背景程序,以預先計算用於確定需要完成的工作的值。此獨立程序(daemon)是一種最佳化,並非 turbo
正常運作所必需的。
預設的 daemon 用法是使用 turbo.json
中的 daemon
欄位為您的儲存庫設定的。傳遞 --daemon
要求 turbo
使用獨立程序,而 --no-daemon
指示 turbo
避免使用或建立獨立程序。
也可以透過 TURBO_DAEMON=true
系統變數設定相同的行為。
--output-logs <選項>
預設值:full
設定輸出記錄的類型,如果 turbo.json
中定義了,則覆寫 outputLogs
。
選項 | 說明 |
---|---|
full | 顯示所有記錄 |
hash-only | 僅顯示任務的雜湊 |
new-only | 僅顯示快取未命中時的記錄 |
errors-only | 僅顯示任務失敗時的記錄 |
none | 隱藏所有任務記錄 |
--only
預設值:false
限制執行,僅包含指定的任務。
範例
假設有此 turbo.json
該命令將僅在每個套件中執行 test
任務。它將不會執行 build
。
此外,--only
將僅在指定的套件中執行任務,而不包括依賴項。例如,turbo run build --filter=web --only
將僅在 web
套件中執行 build
腳本。
--parallel
預設值:false
跨套件平行執行命令,忽略任務依賴圖。
--parallel
標誌通常用於長時間執行的「dev」或「watch」任務,這些任務不會退出。從 turbo@1.7
開始,我們建議使用persistent
來設定這些任務。
--preflight
僅當設定遠端快取時適用。啟用在每個快取成品和分析請求之前傳送預檢請求。後續的上傳和下載將遵循重新導向。
也可以透過 TURBO_PREFLIGHT=true
系統變數設定相同的行為。
--profile
產生 Chrome Tracing 格式的執行追蹤,您可以使用該追蹤來分析效能。
您必須提供詳細程度標誌 (-v
、-vv
或 -vvv
) 與 --profile
一起使用才能產生追蹤。
可以在 Perfetto 等工具中檢視設定檔。
--remote-cache-timeout
預設值:30
設定遠端快取操作的逾時時間(以秒為單位)。
--remote-only
已棄用
此標誌已棄用,並將在未來的重大版本中移除。請改用 --cache
標誌。
預設值:false
忽略所有任務的本機檔案系統快取,使用遠端快取來讀取和快取任務輸出。
--summarize
在 .turbo/runs
中產生一個 JSON 檔案,其中包含有關執行的中繼資料,包括
- 受影響的套件
- 已執行的任務(包括其計時和雜湊)
- 快取成品中包含的所有檔案
此標誌有助於進行除錯,以確定如下事項
turbo
如何解譯您針對inputs
和outputs
的 glob 語法- 兩次任務執行之間發生了哪些輸入變更,導致快取未命中
- 任務計時如何隨著時間變化
摘要檢視器
雖然沒有 Turborepo 原生的執行摘要 UI 檢視器,但如果您想要將您的執行摘要檢視為網頁檢視,我們鼓勵您使用社群建立的 https://turbo.nullvoxpopuli.com。
--token
用於遠端快取的 bearer 權杖。在非互動式 shell 中結合 --team
標誌執行時很有用。
也可以使用TURBO_TOKEN
系統變數設定此值。如果兩者都存在,則標誌值將覆寫系統變數。
注意事項
如果您正在使用 Vercel 遠端快取並在 Vercel 上建置您的專案,則您無需使用此標誌。此值將自動為您設定。
--team
遠端快取團隊的 slug。在非互動式 shell 中結合 --token
標誌執行時很有用。
也可以使用TURBO_TEAM
系統變數設定此值。如果兩者都存在,則標誌值將覆寫系統變數。
--ui
指定用於輸出的 UI。接受 stream
或 tui
。
--verbosity
若要指定記錄層級,請使用 --verbosity=<num>
或 -v、-vv、-vvv
。
層級 | 標誌值 | 簡寫 |
---|---|---|
資訊 | --verbosity=1 | -v |
除錯 | --verbosity=2 | -vv |
追蹤 | --verbosity=3 | -vvv |
這有幫助嗎?