第二篇:半小时搭建开发环境,吃透 Claude Code 源码分析环境

📚 系列文章 02/10 · 📅 2026年6月27日 · ⏱️ 阅读时间约 10 分钟


🔧 一、环境准备:这些版本必须满足

Claude Code 源码对运行环境有严格要求,提前检查可以避免启动时报错。

工具 最低版本 推荐版本 状态
Bun ≥ 1.3.5 最新版 ✅ 首选
Node.js ≥ 24.0.0 最新版 ⚠️ 次选
npm / yarn ❌ 不支持
操作系统 macOS / Linux macOS
内存 8GB 16GB+ 推荐

⚠️ 为什么要求 Node ≥ 24?
源码中大量使用 ES Module 动态导入(import())和顶层 await,这些特性在低版本 Node 中不稳定。Node 24 是目前支持最好的版本。

快速检查当前版本:

bun --version
node --version

📥 二、获取源码:三种方式任选

方式 A:克隆 GitHub 仓库(推荐)

git clone https://github.com/weng1252/Claude-Code.git
cd Claude-Code
bun install

方式 B:直接从 npm 包还原

npm pack @anthropic-ai/claude-code
# 解压后找到 cli.js.map,下载 R2 存储桶中的 source map
# 用 Mozilla 的 sourcemap 工具还原 TypeScript 源码

方式 C:Hugging Face 下载(国内推荐)

# 项目已上传 HF,直接下载打包好的源码
wget https://huggingface.co/datasets/xxx/claude-code-source/resolve/main/src.tar.gz
tar -xzf src.tar.gz

📌 本文使用方式 A,克隆后的仓库包含完整的 2,039 个 TypeScript 文件,总计约 38 万行代码


⚙️ 三、安装依赖:bun install

bun install

Bun 的安装速度比 npm 快 10-20 倍,整个过程通常在 30 秒内完成。

安装完成后会生成 bun.lockb 锁文件。如果遇到特定包安装失败,可以尝试:

bun install --no-optional   # 跳过可选依赖
bun install --ignore-scripts # 跳过 postinstall 脚本

🚀 四、启动运行:第一次跑起来

bun run dev

等待 3-5 秒,你会看到 Claude Code 的 ASCII Logo 动画,然后是交互式 REPL 界面:

╔═══════════════════════════════════════════╗
║   Claude Code v999.0.0-restored          ║
║   Type '/help' for available commands    ║
╚═══════════════════════════════════════════╝

claude-code >

如果只想验证版本信息:

bun run version
# 输出: @anthropic-ai/claude-code 999.0.0-restored

⚠️ 首次启动注意
Claude Code 默认需要 ANTHROPIC_API_KEY 环境变量。如果还没配置,会提示登录或输入 API Key。可以用 export ANTHROPIC_API_KEY=sk-xxx 临时设置,或者用 /auth 命令在界面内完成配置。


📁 五、目录结构:看懂 2,039 个文件

克隆后的目录非常庞大,先了解各层级的职责才能高效阅读。

src/
├── cli/              命令行入口,处理参数解析和 REPL 循环
├── assistant/       AI 对话引擎,编排工具调用流程(核心)
├── tools/            199 个工具实现,FileRead/Bash/Git/Web 等
├── commands/         70+ 个斜杠命令,/help /commit /bug 等
├── tasks/            任务系统:LocalAgent/RemoteAgent/DreamTask
├── codebase/         代码解析:AST、符号索引、上下文压缩
├── context/          上下文窗口管理:压缩、分片、token 计数
├── buddy/            隐藏功能:AI 电子宠物系统 🐣
├── proactive/        KAIROS 持久助手模式
├── coordinator/       多 Agent 编排器
├── bridge/           远程会话桥接协议
├── native-ts/        原生模块:终端检测、文件监控
├── setup.ts          启动初始化流程(检查版本/配置/权限)
└── main.tsx         主入口文件

关键文件速查表:

文件 作用 复杂度
src/setup.ts 启动初始化,检查版本、配置、权限 ~400行
src/assistant/toolExecution.ts 工具编排引擎 ~800行
src/context/context.ts 上下文窗口管理 ~600行
src/tools/index.ts 工具注册中心 ~400行
src/commands.ts 70+ 斜杠命令的注册表 ~600行

🧭 六、源码阅读技巧

1. 用 tsconfig 的 paths 快速跳转

TypeScript 配置了路径别名 "src/*": ["./src/*"],阅读代码时可以直接追踪模块:

// 源码中的导入
import { getCommands } from './commands.js'

// 实际对应
src/commands.ts  ← 70+ 个斜杠命令的注册表

2. 功能开关 feature() 是发现隐藏功能的金矿

Claude Code 有大量隐藏功能通过 feature('XXX') 编译开关控制。搜索这个模式可以发现未公开功能:

# 在源码目录中搜索
grep -r "feature('" src/ | head -20

# 常见功能开关:
feature('BUDDY')      // AI 电子宠物
feature('KAIROS')     // 持久助手模式
feature('ULTRAPLAN')  // 云端深度规划(需要 Opus 模型)

3. 从命令入口反向追踪

想了解某个命令(如 /commit)的实现?先找到命令定义:

grep -r "commit" src/commands.ts | head -10
# 实际位置:src/commands/commit.ts ← 里面调用 git.ts 封装的 Git 操作

4. 关键类型定义

类型定义集中在 src/types/src/schemas/ 目录:

ls src/types/    # 核心类型:Message, Tool, Task, Session 等
ls src/schemas/  # JSON Schema:工具参数校验规则

🧪 七、在源码中做实验

实验 1:打印所有可用命令

修改 src/commands.ts,在 getCommands() 返回后加一行:

console.log('所有命令:', Object.keys(commands).join(', '))

实验 2:开启详细日志

Claude Code 内部有完整的日志系统。修改 src/utils/log.ts 中的日志级别,可以开启完整的 API 请求/响应调试:

// 在 log.ts 中将 INFO 改为 DEBUG
const LOG_LEVEL = 'DEBUG'

实验 3:禁用某个工具

工具权限控制文件在 src/utils/permissions/,修改对应条目即可禁用工具:

// 例如禁用 WebSearch 工具
export const DISABLED_TOOLS = ['WebSearch', 'WebFetch']

📋 总结

本篇完成了开发环境从零到一的搭建,覆盖了:

  • ✅ 版本要求(Bun ≥ 1.3.5 / Node ≥ 24)
  • ✅ 三种源码获取方式(GitHub 克隆 / npm 还原 / HF 下载)
  • ✅ 依赖安装与首次启动验证
  • ✅ 核心目录结构解读
  • ✅ 四种实用阅读技巧

📌 关键结论

  1. Bun 是唯一推荐的运行方式,比 Node 快 3-10 倍
  2. 38 万行 TypeScript 代码,目录结构清晰,从 src/assistant/ 开始读效率最高
  3. feature('XXX') 搜索是发现隐藏功能的最佳入口
  4. 首次运行需要配置 ANTHROPIC_API_KEY 环境变量

📅 下篇预告

深入解析 CLI 入口与命令系统——从 bun run dev 到 REPL 循环,Claude Code 是如何用 React(Ink 框架)构建终端界面的?敬请期待!


💡 如果这篇文章对你有帮助,欢迎点赞、收藏、关注!

有问题欢迎在评论区讨论!

#ClaudeCode #源码分析 #Bun #TypeScript #开发环境 #AI编程

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐