
高性能なモノレポビルドツール
無料

Turborepoは、JavaScriptおよびTypeScriptモノレポ向けの高性能ビルドシステムです。計算済みのタスクをインテリジェントにスキップするインクリメンタルビルドエンジンを活用し、開発およびCIワークフローを最適化します。LernaやNxなどの従来のツールとは異なり、コンテンツ認識ハッシュアルゴリズムと、チームメンバーやCI環境間でビルド成果物を共有するリモートキャッシュ層を通じて、速度を追求しています。冗長な作業を排除することで、CIの計算コストとローカル開発の遅延を大幅に削減し、複雑な依存関係グラフに伴うパフォーマンス低下を招くことなく、大規模なコードベースを拡張可能にします。
Turborepoはコンテンツ認識ハッシュアルゴリズムを使用して、ワークスペース全体の変更を追跡します。前回の実行以降に変更されたパッケージのタスクのみを実行し、変更のない依存関係を効率的にスキップします。この粒度の細かいアプローチにより「すべてを再ビルドする」問題を回避し、コミットごとにコードの一部のみが変更される大規模モノレポにおいて、数時間の計算時間を節約します。
リモートキャッシュにより、ビルド成果物をチームやCI/CDパイプライン間で共有できます。ある開発者やCIランナーがパッケージをビルドすると、その結果がリモートキャッシュにアップロードされます。他のマシンでの後続のビルドでは、再コンパイルの代わりにこれらの計算済み成果物をダウンロードするため、分散開発チームにおいて「同じ作業を二度としない」ことが現実となります。
'turbo.json'ファイルを使用すると、シンプルなJSONスキーマでタスクの依存関係を明示的に定義できます。あるパッケージの'build'タスクが、その依存関係の'build'タスク完了後にのみ実行されるようにするなど、複雑な実行順序を定義可能です。この宣言的なアプローチにより、壊れやすいシェルスクリプトを排除し、ローカル環境とCI環境間で一貫した実行環境を保証します。
Turborepoは、既存のモノレポに段階的に統合できるように設計されています。メリットを享受するためにプロジェクト構造全体をリファクタリングする必要はありません。'turbo.json'ファイルを追加し、既存のnpmスクリプトをラップするだけで、すぐにキャッシュと並列実行を活用できるため、ビルド時間の遅さに悩むチームにとって低負荷なアップグレードとなります。
Turborepoは、独立したタスクを並列実行することでCPU使用率を最大化します。ワークスペースの依存関係グラフを分析し、競合なしに同時ビルド可能なパッケージを特定します。これによりハードウェアのスループットを最大化し、逐次実行モデルと比較して、リポジトリ全体のビルドに必要な合計時間を大幅に短縮します。
CLIをグローバルまたはプロジェクト内に'npm install turbo --save-dev'でインストールします。,ルートディレクトリに'turbo.json'設定ファイルを作成し、タスクパイプラインと依存関係グラフを定義します。,ビルドタスクを'package.json'のscriptsに定義し、'turbo.json'の'pipeline'セクションで参照されるようにします。,'npx turbo login'を実行してVercel Remote Cacheで認証し、共有成果物ストレージを有効にします。,'npx turbo run build'を実行してビルドやテストスイートを実行し、インクリメンタル実行エンジンを起動します。,ターミナルの出力を確認し、どのタスクが'cached'(キャッシュ済み)でどれが'executed'(実行済み)かを確認してパフォーマンス向上を検証します。
大規模なエンジニアリングチームは、Turborepoを使用してCIの実行時間を大幅に短縮しています。ビルド成果物をキャッシュすることで、以前は30分かかっていたCIパイプラインを5分未満に短縮でき、クラウドの計算コストを直接削減し、プルリクエストに対するフィードバックループを高速化することで開発者の生産性を向上させます。
単一リポジトリで数十のパッケージを管理する組織は、Turborepoを使用してパフォーマンスを維持しています。パッケージ数に比例してビルド時間が増加する「モノレポ税」を防ぎ、ビルド速度を犠牲にすることなくコードのモジュール性を維持できます。
リモートチームはリモートキャッシュを使用して、リード開発者がプロジェクトをビルドすれば、CIサーバーや他のチームメンバーもそのキャッシュ結果を利用できるようにしています。「自分のマシンでは動く」というビルドの不一致を解消し、組織全体で一貫した成果物の生成を保証します。
長いビルド時間を待つことなく、複雑なTypeScriptモノレポを管理する必要があります。Turborepoは、ローカル開発環境を軽快かつ応答性の高い状態に保つためのツールを提供します。
CI/CDパイプラインの最適化とクラウドインフラコストの削減を担当しています。Turborepoを使用してビルド標準を強制し、自動化されたワークフローにおける冗長な計算サイクルを最小限に抑えます。
チームの生産性と開発者体験に注力しています。ビルド時間の遅さによるコンテキストスイッチを減らし、開発者全体の満足度を向上させるためにTurborepoを導入します。
オープンソース(MITライセンス)。コアビルドシステムは無料です。リモートキャッシュはVercelプラットフォームで使用する場合は無料ですが、セルフホストも可能です。