首页 › LLM大语言模型 › Claude专栏 › Claude Code 完全指南:使用方式、技巧与最佳实践 › 三、核心概念详解 › 3.6 CLAUDE.md(项目记忆文件)

3.6 CLAUDE.md(项目记忆文件)

什么是 CLAUDE.md?​

•

CLAUDE.md 是 Claude Code 的"项目记忆文件",记录项目结构、构建命令、代码规范、架构决策等信息,让 Claude Code 快速理解项目上下文。​

CLAUDE.md 的作用​

​

#IBNdrKxdpJeo text { white-space: pre; }#IBNdrKxdpJeo .fb0 { stroke: var(--N900-FG, 0.15); }#IBNdrKxdpJeo .fb0 {stroke: rgba(31,35,41, 0.15)}#IBNdrKxdpJeo .fx0 { stroke-miterlimit: 10; }#IBNdrKxdpJeo .fx0 {stroke-miterlimit: 10}#IBNdrKxdpJeo .fa1 { fill: rgb(187, 191, 196); }#IBNdrKxdpJeo .fa1 {fill: rgb(187, 191, 196)}#IBNdrKxdpJeo .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#IBNdrKxdpJeo .fx1 {font-style: normal}#IBNdrKxdpJeo .fx2 { text-anchor: middle; }#IBNdrKxdpJeo .fx2 {text-anchor: middle}#IBNdrKxdpJeo .fx3 { dominant-baseline: central; }#IBNdrKxdpJeo .fx3 {dominant-baseline: central}#IBNdrKxdpJeo .fx4 { stroke: none; }#IBNdrKxdpJeo .fx4 {stroke: none}#IBNdrKxdpJeo .fc0 { fill: var(--text-caption); }#IBNdrKxdpJeo .fc0 {fill: #646a73}#IBNdrKxdpJeo .fa2 { fill: var(--text-link-disabled); }#IBNdrKxdpJeo .fa2 {fill: rgb(187, 191, 196)}#IBNdrKxdpJeo .fa3 { fill: rgb(238, 240, 246); }#IBNdrKxdpJeo .fa3 {fill: rgb(238, 240, 246)}#IBNdrKxdpJeo .fa4 { fill: rgb(255, 255, 255); }#IBNdrKxdpJeo .fa4 {fill: rgb(255, 255, 255)}#IBNdrKxdpJeo .fx5 { font: 700 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#IBNdrKxdpJeo .fx5 {font-style: normal}#IBNdrKxdpJeo .fx6 { text-anchor: start; }#IBNdrKxdpJeo .fx6 {text-anchor: start}#IBNdrKxdpJeo .fx7 { dominant-baseline: alphabetic; }#IBNdrKxdpJeo .fx7 {dominant-baseline: alphabetic}#IBNdrKxdpJeo .fc1 { fill: rgb(34, 34, 34); }#IBNdrKxdpJeo .fc1 {fill: rgb(34, 34, 34)}#IBNdrKxdpJeo .fx8 { font: 400 14px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#IBNdrKxdpJeo .fx8 {font-style: normal}#IBNdrKxdpJeo .fb1 { fill: var(--N900-FG, 0.15); }#IBNdrKxdpJeo .fb1 {fill: rgba(31,35,41, 0.15)}#IBNdrKxdpJeo .fb2 { fill: rgb(223, 227, 236); }#IBNdrKxdpJeo .fb2 {fill: rgb(223, 227, 236)}#IBNdrKxdpJeo .fb3 { fill: rgb(223, 230, 236); }#IBNdrKxdpJeo .fb3 {fill: rgb(223, 230, 236)}#IBNdrKxdpJeo .fa5 { fill: var(--bg-body); }#IBNdrKxdpJeo .fa5 {fill: #fff}AB12345作用项目知识库快速启动团队协作持续迭代说明📚 🚀 🤝 🔄 记录项目架构、技术栈、依赖关系自动读取,无需重复解释项目背景共享项目规范,确保团队理解一致随项目演进自动更新

​

CLAUDE.md 最佳位置​

​

🌐

•

优先级: 特定规则 > 模块配置 > 项目配置 > 用户配置​

​

CLAUDE.md 示例​

完整示例:​

​

代码块​

Markdown

# 项目名称: E-Commerce Platform## 项目概述​

这是一个基于 Node.js + React 的电商平台,支持商品管理、订单处理、支付集成等功能。​

​

## 技术栈- **前端:** React 18, TypeScript, Tailwind CSS, Redux Toolkit​

- **后端:** Node.js 20, Express, TypeScript​

- **数据库:** PostgreSQL 15, Redis 7​

- **认证:** JWT, OAuth 2.0​

- **测试:** Jest, Playwright​

- **部署:** Docker, Kubernetes​

​

## 项目结构​

\`\`\`​

src/​

├── frontend/ # React 前端​

│ ├── components/ # 可复用组件​

│ ├── pages/ # 页面组件​

│ ├── store/ # Redux store​

│ └── utils/ # 工具函数​

├── backend/ # Node.js 后端​

│ ├── controllers/ # 控制器​

│ ├── services/ # 业务逻辑​

│ ├── models/ # 数据模型​

│ └── routes/ # API 路由​

└── shared/ # 共享代码​

└── types/ # TypeScript 类型定义​

\`\`\`​

## 常用命令### 开发环境​

\`\`\`bash​

# 安装依赖​

npm install​

​

生成 CLAUDE.md 的方式​

方式一:使用 /init 命令​

​

代码块​

Bash

# 在项目根目录​

claude /init​

​

Claude Code 会自动扫描项目并生成初始 CLAUDE.md,包含:​

•

构建和测试命令​

•

目录结构说明​

•

代码规范和架构决策​

•

技术栈信息​

方式二:手动创建​

​

代码块​

Bash

# 创建基础文件touch CLAUDE.md​

​

# 让 Claude Code 帮助生成​

​

方式三:模块化规则​

​

代码块​

Bash

# 在 .claude/rules/ 目录创建多个规则文件​

.claude/rules/​

├── auth.md # 认证相关规则​

├── database.md # 数据库相关规则​

├── api.md # API 设计规范​

└── testing.md # 测试规范​

​

方式四:Memory Updates - 动态更新记忆​

​

代码块​

Bash

# 直接告诉 Claude 更新知识​

Update CLAUDE.md: always use bun instead of npm​

​

CLAUDE.md 的 AI 进化机制​

​

🌐

来自 Claude Code 创始人团队的实战经验:​

核心理念: 让 Claude 在 Code Review 中自我迭代,越用越聪明​

​

实战流程:​

在 PR 中发现问题​

​

代码块​

Bash

# 在 GitHub PR 评论中​

@claude 这里的代码使用了 enum,但我们项目规范要求使用 string union,请修复​

​

让 Claude 记住教训​

​

代码块​

Bash

# 在 PR 中直接告诉 Claude​

@claude 请把这次的教训写入 CLAUDE.md:不要使用 enum,改用 string union​

​

Claude 自动更新​

​

代码块​

Markdown

# Claude 会在 CLAUDE.md 中添加## 代码规范更新 (2026-01-03)### Enum vs String Union- ❌ 不要使用 enum​

- ✅ 改用 string union​

- 理由:更好的类型推断和 Tree-shaking​

​

团队共同维护​

​

代码块​

Bash

# 将 CLAUDE.md 签入 Git​

git add CLAUDE.md​

git commit -m "docs: 更新 CLAUDE.md 规范"# 整个团队共享这份"行为准则"​

​

价值体现:​

•

🧠 集体智慧: 每个团队成员的反馈都让 AI 更聪明​

•

🔄 持续进化: Claude 不会重复犯同样的错误​

•

📚 知识沉淀: 项目规范自动文档化​

•

🤝 团队协作: 统一的 AI 助手理解团队偏好​

实际案例:​

​

代码块​

Markdown

# CLAUDE.md - 实际演进示例## 初始版本 (第1周)- 使用 TypeScript​

- 测试覆盖率 > 80%​

​

​