turbo run <task>
指定されたスコープ内のすべてのワークスペースでnpmスクリプトを実行します。タスクは、pipeline
設定で指定する必要があります。
turbo run <task1> <task2> [options] [-- <task1とtask2に渡される引数>]
turbo
は複数のタスクを実行でき、--
の後の引数はすべて、実行されるタスクに渡されます。これらの追加の引数は、pipeline設定による依存関係のために実行される追加のタスクには渡されません。
オプション
--cache-dir
型: 文字列
デフォルトは./node_modules/.cache/turbo
です。ローカルファイルシステムのキャッシュディレクトリを指定します。デフォルトから変更する場合は、このフォルダを.gitignore
に追加してください。
turbo run build --cache-dir="./my-cache"
同じ動作は、TURBO_CACHE_DIR=./my-cache
環境変数でも設定できます。
--concurrency
型: 数値 | 文字列
デフォルトは10
です。タスク実行の最大同時実行数を設定/制限します。これは1
以上の整数、または50%
のようなパーセンテージ値である必要があります。1
を使用すると、シリアル(つまり、一度に1つのタスク)実行が強制されます。100%
を使用すると、使用可能なすべての論理プロセッサが使用されます。--parallel
フラグも渡された場合、このオプションは無視されます。
turbo run build --concurrency=50%
turbo run test --concurrency=1
--continue
デフォルトはfalse
です。このフラグはturbo
に対して、エラーが発生した場合(つまり、タスクからの終了コードが0以外の場合)でも実行を継続するかどうかを指示します。デフォルトでは、--parallel
フラグを指定すると、明示的にfalse
に設定しない限り、--continue
がtrue
に自動的に設定されます。--continue
がtrue
の場合、turbo
は、実行中に発生した最大の終了コード値で終了します。
turbo run build --continue
--cwd
コマンドの作業ディレクトリを設定します。
turbo run build --cwd=./somewhere/else
--dry / --dry-run
タスクを実行する代わりに、影響を受けるワークスペースと実行されるタスクの詳細を表示します。--dry=json
を指定すると、JSON形式で出力が得られます。
タスクの詳細には、以下が含まれます。
task
:実行されるタスクの名前package
:タスクを実行するワークスペースhash
:キャッシングに使用されるタスクのハッシュdirectory
:タスクが実行されるディレクトリcommand
:タスクの実行に使用される実際のコマンドoutputs
:キャッシュされるタスクからの出力の場所logFile
:タスク実行のログファイルの場所dependencies
:このタスクの前に実行する必要があるタスクdependents
:このタスクの後に実行する必要があるタスク
--env-mode
型: 文字列
タスクで使用可能な環境変数を制御します。
オプション | 説明 |
---|---|
infer | 許可リストの設定に基づいて、厳格モードまたは緩やかなモードを推測します。 |
loose | すべての環境変数を許可します。 |
strict | 宣言された変数のみを許可します。 |
PATH
、SHELL
、およびSYSTEMROOT
は、常にすべてのタスクで使用できます。
infer
inferモードでは、Turborepoは各タスク設定のpassThroughEnv
と、turbo.json
構成のルートにあるglobalPassThroughEnv
を探します。いずれかが定義されている場合、「厳格」モードが推測されます。どちらも定義されていない場合、「緩やか」モードが推測されます。
このモードでは、globalPassThroughEnv
の値とフラグの値(「infer」)は、globalPassThroughEnv
が設定されている場合にのみ、グローバルハッシュに組み込まれます。
loose
緩やかなモードでは、すべての環境変数がタスクで使用可能になります。フラグの値(「loose」)自体がグローバルハッシュに組み込まれます。
strict
厳格モードでは、次のキーで指定された環境変数のみがタスクで使用できます。
- 各タスク構成の
env
とpassThroughEnv
- 構成のルートにある
globalEnv
とglobalPassThroughEnv
globalPassThroughEnv
の値とフラグの値(「strict」)自体がグローバルハッシュに組み込まれます。
厳格モードが指定または推測されている場合、構成に関係なく、すべてのタスクが厳格モードで実行されます。
--filter
type: string[]
ワークスペース、ディレクトリ、Gitコミットの組み合わせを指定して、実行のエントリポイントとして機能させます。
複数のフィルターを組み合わせて、異なるターゲットセットを選択できます。さらに、フィルターを使用してターゲットを除外することもできます。いずれかのフィルターに一致し、明示的に除外されていないターゲットは、最終的なエントリポイント選択に含まれます。つまり、ターゲットの最終リストは、提供されたフィルターに一致するすべてのターゲットの和集合から、除外されたターゲットの和集合を引いたものです。
--filter
フラグとフィルタリングの詳細については、ドキュメントの専用ページを参照してください。
turbo run build --filter=my-pkg
turbo run test --filter=...^@scope/my-lib
turbo run build --filter=./apps/* --filter=!./apps/admin
--graph
このコマンドは、現在のタスクグラフのSVG、PNG、JPG、PDF、JSON、HTML、またはその他のサポートされている出力形式 (新しいタブで開きます)を生成します。出力ファイル形式はデフォルトでJPGですが、ファイル名の拡張子を指定することで制御できます。
Graphvizがインストールされていない場合、またはファイル名が指定されていない場合、このコマンドはdotグラフをstdout
に出力します。
turbo run build --graph
turbo run build test lint --graph=my-graph.svg
turbo run build test lint --graph=my-json-graph.json
turbo run build test lint --graph=my-graph.pdf
turbo run build test lint --graph=my-graph.png
turbo run build test lint --graph=my-graph.html
turbo run build test lint --graph=my-graph.mermaid
既知のバグ:すべての可能性のあるパイプラインタスクノードが、そのパイプラインタスクが特定のワークスペースに実際に存在しない場合でも、現時点ではグラフに追加されます。これは実行には影響せず、つまり
- ターミナル出力は、タスクが実行されているワークスペースの数を過大評価する可能性があります。
- dot視覚化グラフには、存在しないタスクを表すノードが含まれる可能性があります。
--force
既存のキャッシュされたアーティファクトを無視し、すべてのタスクを強制的に再実行します(重複するアーティファクトを上書きします)。
turbo run build --force
同じ動作は、TURBO_FORCE=true
環境変数でも設定できます。
--global-deps
ハッシュされるグローバルファイルシステム依存関係のglobを指定します。複数のパッケージ/アプリに影響を与える.envファイルやルートディレクトリ内のファイルに役立ちます。複数回指定できます。
turbo run build --global-deps=".env.*" --global-deps=".eslintrc" --global-deps="jest.config.js"
turbo
構成でglobalDependencies
キーとして指定することもできます。
--framework-inference
型:bool
タスクのフレームワーク推論を行うかどうかを指定します。true
がデフォルトで、false
に設定すると、タスクのフレームワーク推論をスキップします。これにより、環境変数の自動インクルードが無効になります。
turbo run build --framework-inference=false
--ignore
type: string[]
スコープに影響を与えるファイルまたはディレクトリを無視します。内部でglobパターンを使用します。
turbo run build --ignore="apps/**/*"
turbo run build --ignore="packages/**/*"
turbo run build --ignore="packages/**/*" --ignore="\!/packages/not-this-one/**/*"
複数のパターンの動作
肯定的なパターン(例:foo
または*
)は結果に追加され、否定的なパターン(例:!foo
)は結果から差し引かれます。
したがって、単一の否定(例:['!foo']
)は何にも一致しません。代わりに['*', '!foo']
を使用してください。
Globパターン
簡単な概要です。
*
は任意の数の文字に一致しますが、/
には一致しません。?
は1文字に一致しますが、/
には一致しません。**
は任意の数の文字に一致します(/
を含む)。ただし、パスの一部で唯一のものの場合に限ります。{}
は、コンマ区切りの「または」式リストを許可します。!
は、パターンの先頭に付けると一致を否定します。
--log-order
型: 文字列
タスク出力順序の種類を設定します。「auto」がデフォルトで、turbo
はCIで実行されているかどうかを検出し、その環境でログをグループ化し、他の環境ではストリーミングします。
オプション | 説明 |
---|---|
auto | Turboが独自のヒューリスティックに基づいて決定します。 |
stream | 利用可能な出力はすぐに表示されます。 |
grouped | タスクごとにグループ化された出力が表示されます。 |
例
turbo run build --log-order=stream
turbo run build --log-order=grouped
ログ順序がautoに設定されていて、turbo
がGitHub Actionsで実行されていることを検出した場合、turbo
はグループ化されたログ (新しいタブで開きます)を作成します。独自のログ順序を設定することで、この動作をオプトアウトできます。
--log-prefix
型: 文字列
これは、タスクの実行時に生成されるログ行の先頭にある<package>:<task>:
プレフィックスを制御します(実行時とキャッシュからの再生時の両方)。これは、「単一パッケージ」リポジトリにも適用され、プレフィックスは<task>:
になります。複数の並列タスクを実行する場合のログ出力はインターリーブされるため、プレフィックスを省略した場合、どのタスクがその行をログに記録したかを判断するには別の方法を使用する必要があります(つまり、拡張されたJSONログ)。
オプション | 説明 |
---|---|
auto | Turboが独自のヒューリスティックに基づいて決定します。 |
none | プレフィックスなし |
prefix | ログの先頭にプレフィックスを強制的に追加します。 |
--log-prefix=none
turbo run dev --log-prefix=none
--no-cache
デフォルトfalse
。タスクの結果をキャッシュしません。next dev
やreact-scripts start
などのウォッチコマンドに役立ちます。
turbo run build --no-cache
turbo run dev --no-cache
--no-daemon
デフォルトfalse
。turbo
は、実行する必要がある作業を決定するために使用される値を事前に計算するために、場合によってはスタンドアロンプロセス(デーモン)を実行できます。このスタンドアロンプロセス(デーモン)は最適化であり、turbo
の適切な機能には必要ありません。--no-daemon
を渡すと、turbo
はスタンドアロンプロセスの使用または作成を回避します。
--output-logs
型: 文字列
出力ロギングの種類を設定します。これは、outputMode
がturbo.json
で定義されている場合、それを上書きします。
オプション | 説明 |
---|---|
full | すべての出力を表示します(デフォルト)。 |
hash-only | タスクのハッシュのみを表示します。 |
new-only | キャッシュミスからの出力のみを表示します。 |
errors-only | タスク失敗からの出力のみを表示します。 |
none | すべてのタスク出力を非表示にします。 |
例
turbo run build --output-logs=full
turbo run build --output-logs=new-only
turbo run build --output-logs=errors-only
turbo run build --output-logs=none
--only
デフォルトはfalse
です。実行を指定されたタスクのみに制限します。これはlerna
とpnpm
がデフォルトでタスクを実行する方法と非常に似ています。
turbo.json
内のこのパイプラインを考えると
{
"$schema": "https://turbo.dokyumento.jp/schema.json",
"pipeline": {
"build": {
"dependsOn": ["^build"]
},
"test": {
"dependsOn": ["^build"]
}
}
}
turbo run test --only
各ワークスペースでtest
タスクのみを実行します。build
は実行しません。
--parallel
デフォルトはfalse
です。ワークスペース間でコマンドを並列に実行し、タスク依存関係グラフを無視します。
--parallel
フラグは、通常、終了しない「dev」または--watch
モードのタスクに使用されます。turbo@1.7
以降、代わりにpersistent
設定を使用してこれらのタスクを構成することをお勧めします。
turbo run lint --parallel --no-cache
turbo run dev --parallel --no-cache
--profile
Chrome Tracing形式で実行のトレースを生成します。これはパフォーマンス分析に使用できます。プロファイルはPerfetto (新しいタブで開きます)で表示できます。
turbo run build --profile=profile.json
--remote-cache-timeout
デフォルトは30
秒です。リモートキャッシュ操作のタイムアウトを秒単位で設定します。
turbo run build --remote-cache-timeout=60
--remote-only
デフォルトはfalse
です。すべてのタスクについてローカルファイルシステムキャッシュを無視します。リモートキャッシュを使用したアーティファクトの読み取りとキャッシュのみを許可します。
turbo run build --remote-only
同じ動作は、TURBO_REMOTE_ONLY=true
環境変数でも設定できます。
--summarize
.turbo/runs
に、実行に関するメタデータ(影響を受けたワークスペース、実行されたタスク(タイミングとハッシュを含む)、設定に基づいてキャッシュキーに展開されたもの、キャッシュされたアーティファクトに含まれるすべてのファイルなど)を含むJSONファイルを生成します。このフラグは、とりわけ、次のことを判断するのに役立ちます。
inputs
とoutputs
に対するglob構文をturboがどのように解釈したか- キャッシュヒットまたはミスが発生する原因となった2つのタスク実行間の入力の変更点
- 時間の経過に伴うタスクタイミングの変化
--token
リモートキャッシング用のベアラートークン。--team
フラグと組み合わせて、非対話型シェル(例:CI/CD)で実行する場合に役立ちます。
turbo run build --team=my-team --token=xxxxxxxxxxxxxxxxx
TURBO_TOKEN
という名前の環境変数を設定して、現在のトークンの値を設定することもできます。両方とも存在する場合は、フラグが環境変数よりも優先されます。
Vercelでリモートキャッシングを使用し、Vercelでプロジェクトをビルドしている場合、この環境変数とフラグは自動的に設定されるため、不要です。Vercelでリモートキャッシングを使用しているが、CircleCIやGitHub Actionsなどの別のCIプロバイダーでビルドしている場合。--token
またはTURBO_TOKEN
としてVercelパーソナルアクセストークンを使用できます。カスタムリモートキャッシュを使用している場合、この値はカスタムリモートキャッシュへのリクエストにHTTPベアラートークンを送信するために使用されます。
--team
リモートキャッシュチームのスラッグ。--token
と--team
フラグと組み合わせて、非対話型シェルで実行する場合に役立ちます。
turbo run build --team=my-team
turbo run build --team=my-team --token=xxxxxxxxxxxxxxxxx
TURBO_TEAM
という名前の環境変数を設定して、現在のチームの値を設定することもできます。両方とも存在する場合は、フラグが環境変数よりも優先されます。
--preflight
リモートアーティファクトキャッシングが設定されている場合にのみ適用されます。すべてのキャッシュアーティファクトと分析リクエストの前にプレフライトリクエストを送信できるようにします。後続のアップロードとダウンロードはリダイレクトに従います。
turbo run build --preflight
同じ動作は、TURBO_PREFLIGHT=true
環境変数でも設定できます。
--verbosity
ログレベルを指定するには、--verbosity=<num>
または-v, -vv, -vvv
を使用します。
- 情報
:
--verbosity=1
、または-v
- デバッグ
:
--verbosity=2
、または-vv
- トレース
:
--verbosity=3
、または-vvv
turbo run build -v
turbo run build --verbosity=2
turbo run build -vvv
非推奨オプション
--cpuprofile
--cpuprofile
型: 文字列
--cpuprofile
は1.11.x
で非推奨となりました。--profile
を代わりに使用してください。
CPUプロファイルを表示するには、プロファイルを指定したファイルに出力し、そのファイルをspeedscope (新しいタブで開きます)にドラッグアンドドロップします。
重要: CPUプロファイラはWindows Subsystem for Linuxでは動作しません。プロファイラはネイティブのWindows向けにビルドし、コマンドプロンプトを使用して実行する必要があります。
turbo run build --cpuprofile="<cpu-profile-file-name>"
--include-dependencies
--include-dependencies
は1.2.x
で非推奨となりました。--filter
を代わりに使用してください。
デフォルトはfalse
です。true
の場合、turbo
は、現在の実行で依存しているワークスペース(つまり、dependencies
またはdevDependencies
で宣言されているワークスペース)を追加します。
これは、CIで--filter
を使用する場合に役立ちます。実行に必要なすべての依存関係が実際に実行されることが保証されます。
--deps
--deps
は1.2.x
で非推奨となりました。--filter
を代わりに使用してください。
デフォルトはtrue
です。実行に依存するワークスペースコンシューマを含めます。
turbo run build --deps
turbo run build --no-deps
例
ワークスペースA、B、C、Dがあり、AがBに依存し、CがDに依存しているとします。turbo run build
を初めて実行すると、すべてがビルドされ、キャッシュされます。次に、Bのコードを1行変更します。--deps
フラグをオンにしてturbo run build
を実行すると、Bでbuild
が実行され、次にAが実行されますが、CとDは変更の影響を受けないため実行されません。turbo run build --no-deps
を実行すると、turboはBでbuild
のみを実行します。
--heap
--heap
は1.2.x
で非推奨となりました。--profile
を代わりに使用してください。
型: 文字列
ヒープトレースを表示するには、トレースを指定したファイルに出力し、go tool pprof [file]
を使用し、top
と入力します。speedscope (新しいタブで開きます)にドラッグアンドドロップし、left heavy
またはsandwich
ビューモードを使用することもできます。
turbo run build --heap="<heap-file-name>"
--scope
--scope
は1.2.x
で非推奨となりました。--filter
を代わりに使用してください。
type: string[]
package.json
のname
フィールド(ファイルシステムではなく)に対するグロブを指定/フィルタリングして、実行のエントリポイントとして機能するワークスペースを指定します。
turbo run lint --scope="@example/**"
turbo run dev --scope="@example/a" --scope="@example/b" --no-cache --no-deps
--since
--since
は1.2.x
で非推奨となり、代わりに--filter
を使用してください。
マージベース以降に変更されたワークスペースに基づいて、実行をフィルタリングします。
turbo run build --since=origin/main
重要: これはgit diff ${target_branch}...
メカニズムを使用して、変更されたワークスペースを特定します。ワークスペースのすべての入力ファイルは、それぞれのワークスペースフォルダ内に存在するという前提があります。
--trace
--trace
は 1.11.x
で非推奨となりました。--profile
を代わりに使用してください。
型: 文字列
CPUトレースを表示するには、トレースを指定されたファイルに出力します。go tool trace [file]
を使用してください。
重要: トレースビューアはWindows Subsystem for Linuxでは動作しません。
turbo run build --trace="<trace-file-name>"