
CLAUDE.md 是 Claude Code 的项目配置文件,通过 CLAUDE.md 你可以让 Claude Code 自动理解项目结构、编码规范、测试流程和工作流。本文是 Claude Code CLAUDE.md 的完整实战教程。
一、什么是 Claude Code 的 CLAUDE.md?
CLAUDE.md 核心概念
CLAUDE.md 是 Claude Code 自动读取的特殊配置文件,用于提供项目持久化上下文。
工作原理:
- Claude Code 启动时自动读取 CLAUDE.md
- CLAUDE.md 的内容注入到每次对话的上下文中
- Claude Code 基于 CLAUDE.md 理解项目规范和结构
为什么需要 CLAUDE.md:
没有 CLAUDE.md:
- ❌ 每次对话都需要重新解释项目结构
- ❌ Claude Code 可能违反团队编码规范
- ❌ 需要反复说明测试命令和构建流程
有了 CLAUDE.md:
- ✅ Claude Code 自动了解项目结构
- ✅ 遵守 CLAUDE.md 中定义的编码规范
- ✅ 自动使用正确的测试和构建命令
CLAUDE.md 与其他配置文件的区别
| 配置文件 |
作用 |
Claude Code 是否读取 |
| CLAUDE.md |
提供项目上下文给 Claude Code |
✅ 自动读取 |
| README.md |
面向人类的项目说明 |
❌ 需手动引用 |
| .claude/mcp.json |
MCP 服务器配置 |
✅ 自动读取(MCP 专用) |
| package.json |
npm 项目配置 |
⚠️ 可选读取 |
关键区别:
- CLAUDE.md 专为 Claude Code 设计
- 自动注入对话上下文,无需手动@引用
- 团队共享的 Claude Code 使用规范
二、Claude Code CLAUDE.md 的放置位置
位置 1:项目根目录(推荐)
your-project/
├── CLAUDE.md # 项目级 CLAUDE.md
├── package.json
├── src/
└── tests/
适用场景:
- 单一项目
- 明确的项目边界
- Claude Code 在项目根目录启动
优势:
- ✅ Claude Code 自动发现
- ✅ 与项目代码一起版本管理
- ✅ 团队成员共享配置
位置 2:子目录(Monorepo 场景)
monorepo/
├── CLAUDE.md # 全局 CLAUDE.md
├── packages/
│ ├── frontend/
│ │ └── CLAUDE.md # 前端专用 CLAUDE.md
│ └── backend/
│ └── CLAUDE.md # 后端专用 CLAUDE.md
CLAUDE.md 合并规则:
- Claude Code 会合并所有父目录的 CLAUDE.md
- 子目录的 CLAUDE.md 优先级更高
- 局部规则覆盖全局规则
实战案例:
# monorepo/CLAUDE.md(全局)
## 团队规范
- 使用 TypeScript
- 遵循 ESLint 配置
# monorepo/packages/frontend/CLAUDE.md(前端专用)
## 前端特定规范
- 使用 React 18
- 组件必须有 PropTypes
- 使用 Tailwind CSS
在 packages/frontend/ 启动 Claude Code:
- 读取全局
monorepo/CLAUDE.md
- 读取局部
monorepo/packages/frontend/CLAUDE.md
- 合并两者,局部规则优先
位置 3:全局配置(~/.claude/CLAUDE.md)
~/.claude/
└── CLAUDE.md # 全局 CLAUDE.md
适用场景:
- 个人开发偏好
- 跨项目通用规范
- 私有配置(不提交到 Git)
全局 CLAUDE.md 示例:
# 我的全局 Claude Code 配置
## 个人偏好
- 代码注释使用中文
- Git commit 消息使用英文
- 优先使用函数式编程
## 常用命令
- 测试:`npm test`
- 构建:`npm run build`
- Lint:`npm run lint`
优先级:
- 当前目录的 CLAUDE.md
- 父目录的 CLAUDE.md
- 全局 ~/.claude/CLAUDE.md(最低优先级)
三、如何创建 Claude Code CLAUDE.md
方法 1:使用 /init 命令自动生成(推荐新手)
Claude Code 提供了 /init 命令来自动生成 CLAUDE.md。
操作步骤:
Step 1:启动 Claude Code
cd your-project
claude
Step 2:运行 /init 命令
在 Claude Code 中输入:
/init
Step 3:Claude Code 自动分析
- 读取
package.json、README.md
- 扫描项目结构
- 检测配置文件(ESLint、Prettier 等)
- 识别测试框架
Step 4:生成 CLAUDE.md
- Claude Code 自动创建 CLAUDE.md 文件
- 包含检测到的项目信息
- 可以立即使用
自动生成的 CLAUDE.md 示例:
# Project: My Awesome App
## Tech Stack
- React 18
- TypeScript 5.0
- Vite 4.0
## Build Commands
- Development: `npm run dev`
- Build: `npm run build`
- Test: `npm test`
## Coding Standards
- ESLint configuration detected
- Prettier formatting enabled
- TypeScript strict mode: ON
方法 2:手动创建 CLAUDE.md
对于复杂项目,手动创建 CLAUDE.md 可以提供更精确的控制。
创建步骤:
# 在项目根目录创建 CLAUDE.md
touch CLAUDE.md
# 使用编辑器编辑
vim CLAUDE.md
基础 CLAUDE.md 模板:
# [项目名称]
## 项目概述
简短描述这个项目是什么。
## 技术栈
- 前端:React + TypeScript
- 后端:Node.js + Express
- 数据库:PostgreSQL
## 项目结构
src/
├── components/ # React 组件
├── api/ # API 调用
└── utils/ # 工具函数
## 开发命令
- 启动开发服务器:`npm run dev`
- 运行测试:`npm test`
- 构建生产版本:`npm run build`
## 编码规范
- 使用 ESLint + Prettier
- 组件文件名使用 PascalCase
- 工具函数使用 camelCase
## 测试要求
- 新功能必须包含单元测试
- 测试覆盖率 > 80%
方法 3:使用 # 键实时添加(最灵活)
Claude Code 提供了 # 快捷键来快速添加内容到 CLAUDE.md。
使用方法:
场景 1:记录常用命令
在 Claude Code 中输入:
# 数据库迁移命令是 npm run migrate
Claude Code 自动:
1. 将这条指令添加到 CLAUDE.md
2. 更新 ## 常用命令 部分
3. 后续对话自动记住这个命令
场景 2:记录编码规范
在 Claude Code 中输入:
# API 错误处理必须使用 try-catch 包裹
Claude Code 自动:
1. 添加到 CLAUDE.md 的 ## 编码规范 部分
2. 后续生成代码自动遵守此规范
# 键的优势:
- ✅ 无需离开 Claude Code 界面
- ✅ 实时更新 CLAUDE.md
- ✅ 团队协作时可以在 commit 中包含 CLAUDE.md 更新
四、Claude Code CLAUDE.md 最佳实践
最佳实践 1:结构化内容组织
CLAUDE.md 推荐使用 Markdown 标题结构化组织内容:
# 项目名称
## 项目概述
[项目简介]
## 技术栈
[使用的技术]
## 项目结构
[目录说明]
## 开发命令
[常用命令]
## 编码规范
[代码标准]
## 测试规范
[测试要求]
## Git 工作流
[提交规范]
## 注意事项
[特殊警告]
为什么要结构化:
- Claude Code 更容易解析
- 团队成员快速找到信息
- 便于维护和更新
最佳实践 2:保持 CLAUDE.md 简洁
错误示例(❌ 过于冗长):
## 编码规范
我们的编码规范非常重要,所有开发者都必须遵守。
首先,我们使用 TypeScript,TypeScript 是一种类型安全的...
(500 字的详细解释)
正确示例(✅ 简洁明了):
## 编码规范
- 使用 TypeScript strict mode
- ESLint + Prettier 自动格式化
- 变量命名:camelCase
- 组件命名:PascalCase
- 禁止使用 `any` 类型
简洁原则:
- CLAUDE.md 会注入到每次对话上下文
- 过长的 CLAUDE.md 浪费 tokens
- 简洁版本更容易维护
最佳实践 3:包含可执行命令
CLAUDE.md 应该包含 Claude Code 可以直接执行的命令:
## 开发命令
### 启动开发环境
```bash
npm run dev
运行测试
# 单元测试
npm test
# E2E 测试
npm run test:e2e
# 测试覆盖率
npm run test:coverage
数据库操作
# 迁移数据库
npm run migrate
# 回滚迁移
npm run migrate:rollback
# 生成测试数据
npm run seed
**Claude Code 的好处**:
- 可以直接复制粘贴执行命令
- 减少命令记忆负担
- 避免命令错误
---
### 最佳实践 4:记录团队约定
**CLAUDE.md** 是记录团队约定的理想位置:
```markdown
## Git 提交规范
### Commit 消息格式
():