更新于 2026-10-28
开发
本仓库的设置、命令和贡献工作流。
前置条件
- Node.js 24 或更新
- pnpm 12(通过 package.json 中的
packageManager固定)
设置
pnpm install
命令
pnpm dev # turbo dev:带 HMR 的 Web 应用
pnpm type-check # turbo type-check:整个单体仓库
pnpm lint # eslint(next + typescript 规则),零警告
pnpm test # turbo test(vitest)
pnpm format:check # prettier:整个仓库
pnpm build # 生产构建 → apps/web/.next
推送前所有检查必须通过:pnpm lint 零错误、pnpm type-check 零错误、
pnpm format:check 无差异、pnpm build 成功。
本地化工作流
- 界面文案:编辑
packages/i18n/messages/en.json,然后翻译其他六个 语言文件。保持键结构一致。 - 文档:编辑
packages/content/docs/en/<slug>.md,然后更新翻译。 缺失的翻译会自动回退到英语。 - 更改文案或文档后,运行
pnpm build并在浏览器中检查每种语言的 路由。
Git 身份
仓库提交以项目所有者的身份创建,并且每个提交都带有共同作者尾注:
Co-authored-by: Ella Mizuki
分支保护
main 受保护:仅限 Maintainer 推送,禁止强制推送。历史重写(例如
重新指定提交作者)需要临时移除保护、强制推送,然后以完全相同的设置
恢复保护。
持续集成
没有 CI 服务器监视这个仓库。每次推送前请运行质量门(pnpm type-check、
pnpm lint、pnpm test、pnpm format:check、pnpm build);Vercel 在
部署时构建生产包,构建失败部署也会失败。
合并前测试
验证:
- lint、typecheck、format:check 和 build;
- 在 375、768、1024、1440 和 1920px 宽度下进行浏览器检查,所有语言 零水平溢出;
- 减少动态效果检查:没有微光或转场生效,内容可见;
- 锚点导航避开固定页头(滚动内边距);
- 所有语言的文档路由都能解析,包括英文回退。