Turborepoのチュートリアルで出てくるturbo.jsonのオプションについて調べた
オプションについて
Configuration – Turborepo
globalDependencies
グローバルハッシュの生成に影響あるファイルをリストにする
例えば.env
やtsconfig.json
ファイルといったルートディレクトリに配置するファイルを指定する
{ "$schema": "https://turbo.build/schema.json", "pipeline": { // ... omitted for brevity }, "globalDependencies": [ ".env", // contents will impact hashes of all tasks "tsconfig.json" // contents will impact hashes of all tasks ] }
pipeline
プロジェクト内のタスクの出力を適切にスケジューリング、実行、キャッシュするための設定
オブジェクト内の各キーは、実行するタスクの名前
{ "$schema": "https://turbo.build/schema.json", "pipeline": { "build": { "dependsOn": ["^build"], "outputs": [".next/**", "!.next/cache/**"] }, "lint": { "dependsOn": ["^lint"] }, "dev": { "cache": false, "persistent": true } } }
例えば以下のようにコマンドを入力すると各リポジトリのビルドが始まる
$ turbo build
"dependsOn"
は依存関係を指定し、^
をつけた場合はワークスペース間の依存関係を考えて実行してくれる"outputs"
はキャッシュするファイル群を指定する"cache"
はスクリプトの結果をキャッシュしないようにTurborepo に指示している"pesistent
は長時間実行される開発サーバーであることを知らせるための設定で、他のタスクが依存しないようにできる(ないと他のタスクが始まらない)
一部だけ実行したい場合は--filter
を使う
$ turbo dev --filter docs