Skip to main content
仓库已经拉好、pnpm install 跑完之后的日常工作流。还没装好的话,从 自托管 开始。

仓库一瞥

编辑器配置

整个仓库是 TypeScript。推荐的编辑器组合:
  • VS Code + ESLint + TypeScript Nightly,或
  • Cursor / Windsurf / Claude Code —— 三者都会读取 CLAUDE.md 和 workspace 的 TS 配置。
pnpm-workspace.yamlpackages/tsconfig 一起让跨 workspace 的类型推导开箱即用。如果编辑器找不到类型,重启 TS 服务器。

跨 workspace 的热更新

仓库根目录跑 pnpm run dev 会通过 Turbo 并行启动每个 workspace 的 dev。多数 workspace 用 watch 模式: 所以改 packages/resume-schema/src/index.ts 会触发一次重建,Web 应用通过 workspace link 自动拿到。
Web 应用支持 Turbopack:pnpm --filter @magic-resume/web dev:turbo。更快,但偶尔比 Next.js minor 版本落后一拍 —— 撞上 Turbopack 特有的 bug 时回退到 dev

提交前过 lint 和测试

lint-staged(在根 package.json 配置,由 Husky 触发)会对暂存文件跑一部分检查。完整的扫一遍:
apps/web workspace 有个 i18n 检查会在暂存 .tsx/.ts 时触发:
它确保每个新增的翻译 key 都同时存在于每种语言里。en.json 加了 key 但 zh-CN.json 没加,会让 pre-commit hook 失败。

分支约定

默认分支是 master。功能分支用 <type>/<short-name>(如 feat/turborepo-mcp-migration-wip)。Commit 遵循 conventional commits 风格 —— 看 git log 就能知道格式。