Skip to content

环境搭建:工欲善其事,必先利其器 ​

本节学习目标

  • 在 macOS / Linux / Windows(WSL2 推荐)上完成 Node.js、Bun(可选)、Git 的安装与版本自检。
  • 能使用 HTTPS 或 SSH 克隆社区重建仓库,并理解为何可能没有完整 package.json。
  • 配置 VS Code / Cursor 等编辑器,获得 TypeScript 跳转、搜索、大纲视图的良好体验。

总览:你的「考古工作台」长什么样? ​

生活类比:读 51 万行源码像 考古发掘——Node/Bun 是铲子,Git 是记录坑位的笔记本,编辑器是放大镜和标签盒。


1. 操作系统建议 ​

系统建议原因
macOS直接跟本书步骤与多数开发者文档一致
Linux任选主流发行版路径与权限更透明
Windows优先 WSL2(Ubuntu)避免路径大小写、脚本换行、符号链接坑

2. 安装 Node.js(推荐 LTS) ​

2.1 为什么需要 Node? ​

即使 Claude Code 的某些脚本用 Bun 构建,社区重建仓库 往往仍依赖 Node 生态工具(npm、npx、语言服务)。把 Node 装好,等于备好「通用螺丝刀」。

2.2 安装方式对比 ​

方式优点缺点
官网安装包最简单多版本切换不便
nvm / fnm多版本共存多一步学习成本
包管理器(brew 等)与系统集成版本可能滞后

2.3 自检命令 ​

在终端执行:

bash
node -v
npm -v

期望:node 为 当前 LTS 主版本线(例如 v22.x 或官方当时推荐的 LTS,以 nodejs.org 为准);npm 能正常输出版本号。

2.4 常见故障 ​

现象可能原因处理方向
command not found: node未安装或未加入 PATH重装或检查 shell 配置
权限错误全局目录不可写用 nvm/fnm 或修复目录权限
公司代理证书拦截配置 npm config set proxy 或信任证书

3. 安装 Bun(可选但推荐) ​

3.1 Bun 与本次泄露新闻的关系 ​

公开讨论中提到:Bun 默认行为可能生成 Source Map,若发布流程未剔除,容易导致 .map 进入 npm tarball。学习 Bun 有助于你理解 构建链默认值 = 安全与合规的盲区。

3.2 安装 ​

官方一键脚本会随时间更新,请以 https://bun.sh 为准。装好后自检:

bash
bun -v

3.3 Node vs Bun:并存策略 ​

生活类比:Node 像 国标电源;Bun 像 快充头——很多设备两个都能充,但别混用不认识的线。


4. 安装 Git ​

4.1 为什么必须会 Git? ​

社区仓库频繁更新;你要 diff、blame、checkout 到某提交 对照本书例子。不会 Git,就像考古不用分层记录。

4.2 安装与配置 ​

bash
git --version
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

4.3 SSH vs HTTPS ​

方式适合备注
HTTPS新手最快可能需要 token
SSH长期开发需生成 ~/.ssh/id_ed25519 并加到 GitHub

5. 克隆「社区重建」源码的方法 ​

5.1 仓库示例(教学引用) ​

本书背景中常提及:

  • leaked-claude-code(体量与 star 数会变化)
  • sanbuphy 等分析向仓库( star 较高,偏结构化导读)

重要:本书 不提供 具体侵权或未授权完整分发物的链接;请你只克隆 你确认合法 的公开仓库,并遵守其许可证与 GitHub 政策。

5.2 克隆命令模板 ​

bash
mkdir -p ~/src && cd ~/src
git clone https://github.com/OWNER/REPO.git claude-code-study
cd claude-code-study
git log -1 --oneline

5.3 你可能遇到的「不完整仓库」 ​

情况说明应对
缺 package.json重建者只提供源码树用编辑器只读浏览,不强求 npm i
大量 stub为通过类型检查占位阅读接口签名,理解意图
依赖需逆向私有包名未公开把 import 当「购物清单」,逐项查公开替代品

6. 推荐编辑器配置(VS Code / Cursor) ​

6.1 必装扩展(建议) ​

扩展作用
TypeScript / JavaScript(内置)类型提示与跳转
ESLint(如项目有配置)风格与常见错误
Markdown All in One读本书配套笔记
Mermaid 预览类扩展预览本文图表

6.2 settings.json 片段(可选) ​

下列设置提升大仓库体验(路径与键名以编辑器版本为准):

json
{
  "editor.tabSize": 2,
  "editor.wordWrap": "on",
  "typescript.tsserver.maxTsServerMemory": 8192,
  "search.exclude": {
    "**/node_modules": true,
    "**/dist": true
  }
}

6.3 大文件阅读技巧 ​

技巧快捷键 / 操作(常见绑定)
按符号跳转Command Palette → Go to Symbol
全局搜索rg 或编辑器搜索(尊重 .gitignore)
折叠无关区域Fold All / 手动折叠
书签扩展或 TODO 注释

生活类比:读 4000 行文件像读 字典:没人从第一页背到最后一页,都是先查索引。


7. 可选:终端增强 ​

工具用途
tmux分屏:一边 git,一边 rg
fd / ripgrep比默认搜索更快(可选)

示例 ripgrep:

bash
rg "class QueryEngine" -n .

8. 网络与磁盘 ​

资源粗估建议
磁盘视仓库大小,数 GB 级 不罕见预留空间给 .git
网络clone 可能较慢镜像或浅克隆 git clone --depth 1

9. 验证清单(打勾即用) ​

检查项命令 / 结果
Node 可用node -v
Git 可用git --version
能克隆公开仓库git clone ... 成功
编辑器能打开 .ts有语法高亮
能全局搜索字符串rg 或 IDE 搜索成功

10. 下一步 ​

环境就绪后,请回到 Part 01:


附录 A:WSL2 快速备忘(Windows) ​

  1. 启用 WSL2 与虚拟机平台(微软文档为准)。
  2. 安装 Ubuntu。
  3. 在 Ubuntu 内安装 Node、Git。
  4. 项目文件放在 Linux 文件系统(/home/...),不要放在 /mnt/c/... 以避免 I/O 与权限问题。

附录 B:公司电脑合规提示 ​

若你在企业设备上操作:

  • 先问清 是否允许 克隆第三方重建仓库。
  • 勿将 内部代码 与外部仓库混在同一工作区。
  • 遥测、上传、云同步策略以公司安全规范为准。

附录 C:故障树(简版) ​

当你的编辑器第一次成功跳转到某个 export function 的定义时,你会感到:51 万行不再是洪水,而是一条 可以溯流而上 的河。装备齐了吗?我们进背景篇。

本项目仅用于教育学习目的。Claude Code 源码版权归 Anthropic, PBC 所有。