Use Cases

Claude Code के साथ Claude Code Turborepo

Claude Code का उपयोग करके claude code turborepo सीखें। Practical tips और code examples शामिल हैं।

Turborepoモノレポのbuildको Claude Code से तेज़ करें

Turborepoは、Vercelがdevelopmentする高性能なモノレポbuildシステム है।インクリメンタルbuildとインテリジェントcache से、大規模Projectでもfastなbuildを維持でき है।Claude Code का लाभ उठाकर、Turborepoのcomplexなsettingsもefficiently進められ है।

Projectの初期build

> Turborepoでモノレポを新規बनाओ。
> 構成:
> - apps/web: Next.js App Router
> - apps/docs: Astroドキュメントサイト
> - packages/ui: 共通UIlibrary
> - packages/utils: utilityfunction
> - packages/tsconfig: TypeScriptsettings

Claude Codeがgenerateする turbo.json のsettings例 है।

{
  "$schema": "https://turbo.build/schema.json",
  "globalDependencies": ["**/.env.*local"],
  "globalEnv": ["NODE_ENV"],
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**", ".next/**", "out/**"],
      "env": ["NEXT_PUBLIC_API_URL"]
    },
    "dev": {
      "cache": false,
      "persistent": true
    },
    "lint": {
      "dependsOn": ["^build"]
    },
    "test": {
      "dependsOn": ["^build"],
      "outputs": ["coverage/**"]
    }
  }
}

pipelineのdependencies設計

Turborepoのpipelineでは、taskबीचのdependenciesを dependsOn で宣言し है।

> packageबीचの依存を考慮して、build → test → deploy の
> pipelineを設計して。type checkはbuildと並列で実行したい。
{
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**"]
    },
    "type-check": {
      "dependsOn": ["^build"]
    },
    "test": {
      "dependsOn": ["build"],
      "outputs": ["coverage/**"]
    },
    "deploy": {
      "dependsOn": ["build", "test", "type-check"],
      "cache": false
    }
  }
}

buildtype-check は互いに依存しないため、Turborepoが自動的に並列実行してくれ है।

remotecacheのsettings

チームdevelopmentではremotecacheが欠かせ नहीं है।

> Vercel Remote Cacheをsettingsして。
> CI環境でも使える तरहしたい。
# Vercelアカウントとlink
npx turbo login
npx turbo link

# CI環境用のsettings(GitHub Actions)
# TURBO_TOKEN と TURBO_TEAM を secrets にsettings
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
env:
  TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
  TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v2
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'pnpm'
      - run: pnpm install
      - run: pnpm turbo build lint test --filter=...[HEAD^]

--filter=...[HEAD^] use करना बातで、変更のあったpackageだけをbuild対象にでき है।

フィルタリングで効率的なdevelopment

> webアプリだけをdevモードで起動して。
> 依存packageのwatchも有効にして。
# 特定のアプリとउस依存packageのみ実行
pnpm turbo dev --filter=web...

# 変更があったpackageのみbuild
pnpm turbo build --filter=...[origin/main]

# 特定packageを除बाहर
pnpm turbo build --filter=!./apps/docs

cacheのdebug

buildcacheが効かない場合、Claude Codeにdebugを依頼でき है।

> turbo buildのcacheがヒットしない原因を調査して。
> turbo run build --dry=json の出力 confirmして。
# cacheステータスのconfirm
pnpm turbo build --dry=json | jq '.tasks[] | {taskId, cache}'

# 詳細なlog出力
pnpm turbo build --verbosity=2

Summary

Claude Code का उपयोग करके、Turborepoのpipeline設計やcache戦略を素早くoptimizationでき है।モノレポmanagementの基本CI/CDsettingsガイドも合わせてreference के लिए देखें。

Turborepoの詳しいsettingsはTurborepoofficial documentationをदेखें。

#Claude Code #Turborepo #monorepo #buildツール #performance