用途:把一个单应用仓库转换成 Turborepo + pnpm workspace 的 monorepo,尽量不破坏原有构建与发布流程。
主要能力:统一使用 pnpm workspaces 与 turbo;把可运行应用拆分到 apps/(如 web、mobile、api);把共享代码与配置移到 packages/(如 shared、ui-web、ui-mobile、config);加入缓存、快速 CI 与清晰的所有权边界。目标结构包含 apps/、packages/、pnpm-workspace.yaml、turbo.json 和根 package.json。
常用命令:pnpm add -D turbo;pnpm install;pnpm dlx create-turbo@latest --package-manager pnpm;pnpm turbo run build;pnpm turbo run dev --filter=web;pnpm turbo run test --continue。
工作流程:先审计现有脚本、构建产物与部署入口;创建 apps/ 与 packages/;把现有应用以最小改动迁入 apps/<name>/;新增 pnpm-workspace.yaml 并包含 apps/* 与 packages/*;新增根 turbo.json 的严格流水线;规范各应用与包之间的 build、dev、lint、test、typecheck 脚本;抽取共享代码到 packages/shared 并通过 workspace 依赖连接;抽取共享配置到 packages/config;更新 CI 为 pnpm install 后执行 pnpm turbo run build lint test typecheck;先用 filter 定向验证再跑全量。
验证清单:pnpm install 无需 hoist 补丁即可完成;根目录 pnpm turbo run build 成功;pnpm turbo run dev --filter=<app> 可启动对应应用;各应用能在干净检出下构建;共享包通过 workspace:* 引用;turbo.json 声明输出以命中缓存;CI 从根目录运行且与本地命令一致。
限制:该资料主要面向从单应用迁移到 monorepo 的场景,未提供具体的定价、平台兼容性或安装之外的更多细节;实际改动需按仓库现状逐步调整。