🐡
Turborepoを学ぶ
この記事の目的
参画しているプロジェクトでTurborepoが使われており、Turborepoの概念や使い方、特徴を理解していないため、学習用のメモとして残します。
Turborepoとは?
Vercel が開発した JavaScript/TypeScript のモノレポ環境に特化したビルドツールです。
Turborepoが導入される背景やきっかけ
Turborepoが導入される背景やきっかけには、以下のような要因があります。
-
プロジェクトの成長:
プロジェクトが成長すると、管理するコードの量や複雑さが増加し、Monorepoの導入が求められる場合があります。 -
開発効率の向上:
複数の関連するプロジェクトやパッケージを1つのリポジトリで管理することで、開発効率が向上すると期待されます。 -
リファクタリングの必要性:
コードの共有やリファクタリングを行いやすくするために、Monorepoを導入する場合があります。
Turborepoのメリット
- 変更に対して必要な部分のみビルドを行い、実行内容に差分がない場合はキャッシュを返すため、ビルド時間が短縮され、開発効率が向上します。
- 複数のタスクを並列処理で実行できるため、lint, build, test の速度を向上できます。
- Yarn, npm, pnpm の workspaces に対応しているリポジトリに対して簡単に導入できます。
Turborepoのデメリット
-
複雑性の増加:
複数の関連するプロジェクトやパッケージを1つのリポジトリで管理することで、リポジトリの複雑性が増加します。 -
CI/CDの複雑性:
複数のパッケージやアプリケーションを同じリポジトリで管理するため、CI/CDの設定や管理が複雑になる場合があります。
参考文献
Discussion