Repo
ドキュメント
APIリファレンス
run

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に設定しない限り、--continuetrueに自動的に設定されます。--continuetrueの場合、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宣言された変数のみを許可します。

PATHSHELL、およびSYSTEMROOTは、常にすべてのタスクで使用できます。

infer

inferモードでは、Turborepoは各タスク設定のpassThroughEnvと、turbo.json構成のルートにあるglobalPassThroughEnvを探します。いずれかが定義されている場合、「厳格」モードが推測されます。どちらも定義されていない場合、「緩やか」モードが推測されます。

このモードでは、globalPassThroughEnvの値とフラグの値(「infer」)は、globalPassThroughEnvが設定されている場合にのみ、グローバルハッシュに組み込まれます。

loose

緩やかなモードでは、すべての環境変数がタスクで使用可能になります。フラグの値(「loose」)自体がグローバルハッシュに組み込まれます。

strict

厳格モードでは、次のキーで指定された環境変数のみがタスクで使用できます。

  • 各タスク構成のenvpassThroughEnv
  • 構成のルートにあるglobalEnvglobalPassThroughEnv

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

既知のバグ:すべての可能性のあるパイプラインタスクノードが、そのパイプラインタスクが特定のワークスペースに実際に存在しない場合でも、現時点ではグラフに追加されます。これは実行には影響せず、つまり

  1. ターミナル出力は、タスクが実行されているワークスペースの数を過大評価する可能性があります。
  2. 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で実行されているかどうかを検出し、その環境でログをグループ化し、他の環境ではストリーミングします。

オプション説明
autoTurboが独自のヒューリスティックに基づいて決定します。
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ログ)。

オプション説明
autoTurboが独自のヒューリスティックに基づいて決定します。
noneプレフィックスなし
prefixログの先頭にプレフィックスを強制的に追加します。
--log-prefix=none
turbo run dev --log-prefix=none

--no-cache

デフォルトfalse。タスクの結果をキャッシュしません。next devreact-scripts startなどのウォッチコマンドに役立ちます。

turbo run build --no-cache
turbo run dev --no-cache

--no-daemon

デフォルトfalseturboは、実行する必要がある作業を決定するために使用される値を事前に計算するために、場合によってはスタンドアロンプロセス(デーモン)を実行できます。このスタンドアロンプロセス(デーモン)は最適化であり、turboの適切な機能には必要ありません。--no-daemonを渡すと、turboはスタンドアロンプロセスの使用または作成を回避します。

--output-logs

型: 文字列

出力ロギングの種類を設定します。これは、outputModeturbo.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です。実行を指定されたタスクのみに制限します。これはlernapnpmがデフォルトでタスクを実行する方法と非常に似ています。

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ファイルを生成します。このフラグは、とりわけ、次のことを判断するのに役立ちます。

  • inputsoutputsに対する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

型: 文字列

--cpuprofile1.11.xで非推奨となりました。--profile を代わりに使用してください。

CPUプロファイルを表示するには、プロファイルを指定したファイルに出力し、そのファイルをspeedscope (新しいタブで開きます)にドラッグアンドドロップします。

重要: CPUプロファイラはWindows Subsystem for Linuxでは動作しません。プロファイラはネイティブのWindows向けにビルドし、コマンドプロンプトを使用して実行する必要があります。

turbo run build --cpuprofile="<cpu-profile-file-name>"

--include-dependencies

--include-dependencies1.2.xで非推奨となりました。--filter を代わりに使用してください。

デフォルトはfalseです。trueの場合、turboは、現在の実行で依存しているワークスペース(つまり、dependenciesまたはdevDependenciesで宣言されているワークスペース)を追加します。

これは、CIで--filterを使用する場合に役立ちます。実行に必要なすべての依存関係が実際に実行されることが保証されます。

--deps

--deps1.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

--heap1.2.xで非推奨となりました。--profile を代わりに使用してください。

型: 文字列

ヒープトレースを表示するには、トレースを指定したファイルに出力し、go tool pprof [file]を使用し、topと入力します。speedscope (新しいタブで開きます)にドラッグアンドドロップし、left heavyまたはsandwichビューモードを使用することもできます。

turbo run build --heap="<heap-file-name>"

--scope

--scope1.2.xで非推奨となりました。--filter を代わりに使用してください。

type: string[]

package.jsonnameフィールド(ファイルシステムではなく)に対するグロブを指定/フィルタリングして、実行のエントリポイントとして機能するワークスペースを指定します。

turbo run lint --scope="@example/**"
turbo run dev --scope="@example/a" --scope="@example/b" --no-cache --no-deps

--since

--since1.2.xで非推奨となり、代わりに--filter を使用してください。

マージベース以降に変更されたワークスペースに基づいて、実行をフィルタリングします。

turbo run build --since=origin/main

重要: これはgit diff ${target_branch}...メカニズムを使用して、変更されたワークスペースを特定します。ワークスペースのすべての入力ファイルは、それぞれのワークスペースフォルダ内に存在するという前提があります。

--trace

--trace1.11.x で非推奨となりました。--profile を代わりに使用してください。

型: 文字列

CPUトレースを表示するには、トレースを指定されたファイルに出力します。go tool trace [file] を使用してください。

重要: トレースビューアはWindows Subsystem for Linuxでは動作しません。

turbo run build --trace="<trace-file-name>"