Gestion de monorepo avec Claude Code
Découvrez gestion de monorepo avec Claude Code. Conseils pratiques et exemples de code inclus.
モノレポ管理の複雑さをClaude Codeで解決
モノレポは複数のパッケージを一元管理できる反面、設定の複雑さが課題です。Claude Codeを使えば、初期構築から日々のメンテナンスまで効率的に進められます。
モノレポの初期セットアップ
> Turborepo + pnpm workspaces でモノレポを構築して。
> 以下のパッケージ構成で:
> - apps/web: Next.jsフロントエンド
> - apps/api: Express バックエンド
> - packages/ui: 共通UIコンポーネント
> - packages/shared: 共通型定義・ユーティリティ
> - packages/config: ESLint、TypeScript、Prettier の共通設定
ルートの設定
// turbo.json
{
"$schema": "https://turbo.build/schema.json",
"globalDependencies": ["**/.env.*local"],
"pipeline": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"]
},
"dev": {
"cache": false,
"persistent": true
},
"lint": {
"dependsOn": ["^build"]
},
"test": {
"dependsOn": ["^build"]
},
"type-check": {
"dependsOn": ["^build"]
}
}
}
# pnpm-workspace.yaml
packages:
- "apps/*"
- "packages/*"
共通パッケージの作成
> packages/shared に共通の型定義とユーティリティを作成して。
> apps/web と apps/api の両方から使えるように。
// packages/shared/src/types/user.ts
export interface User {
id: string;
email: string;
name: string;
role: "admin" | "editor" | "viewer";
createdAt: Date;
}
export interface CreateUserInput {
email: string;
name: string;
role: User["role"];
}
// packages/shared/src/utils/validation.ts
export function isValidEmail(email: string): boolean {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}
export function sanitizeInput(input: string): string {
return input.trim().replace(/<[^>]*>/g, "");
}
// packages/shared/src/index.ts
export * from "./types/user";
export * from "./utils/validation";
// packages/shared/package.json
{
"name": "@myapp/shared",
"version": "0.0.0",
"main": "./src/index.ts",
"types": "./src/index.ts",
"scripts": {
"build": "tsup src/index.ts --format cjs,esm --dts",
"type-check": "tsc --noEmit"
}
}
共通設定の一元化
> ESLint、TypeScript、Prettierの設定を
> packages/config に集約して。
> 各appから extends で使えるように。
// packages/config/eslint-preset.js
module.exports = {
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier",
],
parser: "@typescript-eslint/parser",
rules: {
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
"@typescript-eslint/no-explicit-any": "error",
},
};
// apps/web/.eslintrc.js で使用
module.exports = {
extends: [require.resolve("@myapp/config/eslint-preset"), "next/core-web-vitals"],
};
パッケージ間の依存関係追加
> apps/web に packages/ui と packages/shared への
> 依存関係を追加して、インポートが動くようにして。
// apps/web/package.json
{
"dependencies": {
"@myapp/ui": "workspace:*",
"@myapp/shared": "workspace:*"
}
}
新しいパッケージの追加
> packages/logger という新しいパッケージを作成して。
> 構造化ログを出力するユーティリティ。
> 他のパッケージと同じ設定パターンに合わせて。
Claude Codeは既存パッケージの構成を分析し、一貫したパターンで新規パッケージを作成します。
モノレポ全体のメンテナンス
> モノレポ全体の依存パッケージを更新して。
> パッケージ間の整合性を保ちながら。
> 更新後に全パッケージのテストが通ることを確認。
# Claude Codeが実行するコマンド
pnpm -r update
pnpm turbo run build
pnpm turbo run test
pnpm turbo run type-check
CI/CDでのモノレポ対応についてはCI/CDパイプライン構築ガイドを、Next.jsアプリの開発はNext.jsフルスタック開発を参照してください。日々の開発効率を上げるコツは生産性を3倍にする10のTipsもあわせてご覧ください。
Summary
Claude Codeはモノレポの初期構築から日々のメンテナンスまで幅広く対応できます。共通設定の一元管理、パッケージ間の依存関係管理、全体の整合性チェックなど、モノレポ特有の複雑さをClaude Codeが解決します。
Turborepoの詳細はTurborepo公式ドキュメント、Claude CodeについてはAnthropic公式ドキュメントを参照してください。
PDF gratuit : aide-mémoire Claude Code en 5 minutes
Laissez simplement votre e-mail et nous vous enverrons immédiatement l'aide-mémoire A4 en PDF.
Nous traitons vos données avec soin et n'envoyons jamais de spam.
À propos de l'auteur
Masa
Ingénieur passionné par Claude Code. Il gère claudecode-lab.com, un média tech en 10 langues avec plus de 2 000 pages.
Articles similaires
Agent Harness securise pour Claude Code et Codex : permissions, verification et rollback
Construisez un Agent Harness pratique pour Claude Code et Codex avec politiques, plan, verification et recuperation.
10 puissants patterns de sous-agents pour Claude Code
Maîtrisez la fonctionnalité sous-agent de Claude Code avec 10 patterns pratiques. Apprenez à utiliser le traitement parallèle, la spécialisation et l'isolation de contexte.
Introduction au Claude Code Agent SDK — Construisez des agents autonomes rapidement
Apprenez à construire des agents IA autonomes avec le Claude Code Agent SDK. Configuration, définition d'outils et exécution multi-étapes avec des exemples pratiques.