🐡

Turborepoを学ぶ

2024/05/26に公開

この記事の目的

参画しているプロジェクトでTurborepoが使われており、Turborepoの概念や使い方、特徴を理解していないため、学習用のメモとして残します。

Turborepoとは?

Vercel が開発した JavaScript/TypeScript のモノレポ環境に特化したビルドツールです。

Turborepoが導入される背景やきっかけ

Turborepoが導入される背景やきっかけには、以下のような要因があります。

  1. プロジェクトの成長:
    プロジェクトが成長すると、管理するコードの量や複雑さが増加し、Monorepoの導入が求められる場合があります。
  2. 開発効率の向上:
    複数の関連するプロジェクトやパッケージを1つのリポジトリで管理することで、開発効率が向上すると期待されます。
  3. リファクタリングの必要性:
    コードの共有やリファクタリングを行いやすくするために、Monorepoを導入する場合があります。

Turborepoのメリット

  • 変更に対して必要な部分のみビルドを行い、実行内容に差分がない場合はキャッシュを返すため、ビルド時間が短縮され、開発効率が向上します。
  • 複数のタスクを並列処理で実行できるため、lint, build, test の速度を向上できます。
  • Yarn, npm, pnpm の workspaces に対応しているリポジトリに対して簡単に導入できます。

Turborepoのデメリット

  1. 複雑性の増加:
    複数の関連するプロジェクトやパッケージを1つのリポジトリで管理することで、リポジトリの複雑性が増加します。
  2. CI/CDの複雑性:
    複数のパッケージやアプリケーションを同じリポジトリで管理するため、CI/CDの設定や管理が複雑になる場合があります。

参考文献

https://engineering.mercari.com/blog/entry/20220518-aaa18f6b00/
https://dev.classmethod.jp/articles/turborepo-superfast-monorepo-ci/
https://zenn.dev/hayato94087/articles/d2956e662202a7

Discussion