Skip to content

Instantly share code, notes, and snippets.

@kobitoDevelopment
Created December 21, 2025 08:21
Show Gist options
  • Select an option

  • Save kobitoDevelopment/bbd9f9a2339e7ad1ff95b3e700924401 to your computer and use it in GitHub Desktop.

Select an option

Save kobitoDevelopment/bbd9f9a2339e7ad1ff95b3e700924401 to your computer and use it in GitHub Desktop.

Turborepo ドキュメント

Turborepoとは

Turborepoは、JavaScriptおよびTypeScript向けの高性能ビルドシステム。Vercel社が開発し、monorepo(モノリポジトリ)構成に対応している。

開発背景

従来のmonorepo構成における課題:

  • すべてのパッケージを毎回ビルドする必要があり、ビルド時間が増大
  • CI環境での実行時間が長期化
  • 同じ作業を繰り返すことによるリソースの無駄

Turborepoはこれらの課題に対処するために開発された。

解決する問題

1. ビルド時間の削減

  • キャッシング: タスクの入力をハッシュ化し、同じ入力の場合は以前の出力を再利用
  • 並列実行: 依存関係のないタスクを同時実行
  • 増分ビルド: 変更されたパッケージとその依存関係のみを再ビルド

2. チーム全体での効率化

  • リモートキャッシング: ビルド結果をチームメンバー間で共有
  • CI環境の高速化: 過去のビルド結果を再利用

3. 依存関係の自動管理

  • パッケージ間の依存関係を自動解析し、適切な順序で実行

主要機能

1. タスクパイプライン

turbo.jsonでタスクの実行順序と依存関係を定義する。

{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**"]
    },
    "test": {
      "dependsOn": ["build"]
    }
  }
}

2. ローカルキャッシング

タスクの実行結果を.turboディレクトリにキャッシュし、同じ入力の場合は結果を復元する。

3. リモートキャッシング

Vercel Remote Cacheまたはカスタムサーバーを使用して、チーム全体でキャッシュを共有する。

4. 並列実行

依存関係のないタスクを自動的に並列実行する。

# 並列実行数を指定
turbo build --concurrency=4

5. フィルタリング

特定のパッケージのみを対象にタスクを実行する。

# webパッケージのみビルド
turbo build --filter=web

# webとその依存関係をビルド
turbo build --filter=web...

6. 依存関係グラフの可視化

パッケージ間の依存関係を視覚的に確認する。

turbo build --graph

基本的な使用方法

インストール

# 新規プロジェクト
npx create-turbo@latest

# 既存プロジェクトに追加
npm install turbo --save-dev

基本コマンド

# ビルド
turbo build

# テスト
turbo test

# 開発サーバー起動
turbo dev

# キャッシュを無視して実行
turbo build --force

公式ドキュメント


注記: Turborepoは単一パッケージ構成でも動作するが、複数のアプリケーションや共通ライブラリを持つmonorepo構成で効果が高い。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment