【ターボレポ】
Turborepo とは?
最終更新:
💡 「前にやったビルド、もう一回やる必要ある?」を省くターボエンジン
モノレポ向けのビルドシステム。タスクの結果をキャッシュして同じ入力の処理を省き、依存関係を見ながらタスクを並列に実行して、ビルドやテストを速くする。
📌 このページのポイント
- モノレポ内の複数パッケージのビルド・テスト・リントなどのタスクをまとめて実行する
- タスクの入力からハッシュ(指紋)を計算し、同じ入力なら前回の結果をキャッシュから復元する
- リモートキャッシュを使うと、チームやCIの間でキャッシュを共有できる(Vercelのほか自前のサーバーも使える)
- JavaScriptのパッケージマネージャーのワークスペースを土台にしていて、Goなど一部の言語のワークスペースも組み合わせられる
Turborepoって何のためのツール?
キャッシュってどういう仕組み?
タスクに関わるファイルや設定などの入力からハッシュ(指紋)を計算して、前回と同じなら前回の出力とログを復元するんだ。100個のパッケージのうち1個だけ変えたなら、影響しないパッケージのタスクはキャッシュから戻せるよ。ただし、同じ入力なら同じ結果になるタスクであることが前提なんだ
前提が崩れるとどうなるの?
リモートキャッシュって何?
Nxっていう似たツールもあるよね?それにJavaScript以外でも使える?
📖 おまけ:英語の意味
「Turborepo」 = ターボ(高速)+ リポジトリ
💬 Turbo(加速)とRepo(リポジトリ)を組み合わせた名前だよ。Jared Palmerが開発していたもので、2021年12月にVercelが買収を発表したんだ