用途:指导搭建与维护 monorepo,实现多包/多应用间的代码共享、一致工具链和原子提交,并优化构建与测试性能。
主要能力:覆盖新项目初始化、多仓迁移、构建与测试性能优化、共享依赖管理、CI/CD 配置、版本发布与常见问题排查。工具方面介绍包管理器 pnpm/npm/Yarn workspaces(推荐 pnpm),构建系统 Turborepo(多数场景推荐)、Nx(功能丰富但复杂)和 Lerna(较旧、维护模式)。
使用方式:可用 npx create-turbo@latest my-monorepo 创建 Turborepo 项目,或用 npx create-nx-workspace@latest my-org 创建 Nx 工作区;典型目录为 apps/ 与 packages/。通过 turbo.json 配置 pipeline(build 依赖 ^build,配置 outputs 输入输出缓存),pnpm-workspace.yaml 声明包路径,root package.json 设 private 与 workspaces。常用命令:pnpm add react --filter @repo/ui、pnpm -r build、pnpm --filter web dev、nx build my-app、nx affected:build、nx graph。远程缓存可执行 npx turbo login 与 npx turbo link。发布可用 Changesets(pnpm changeset、pnpm changeset version、pnpm changeset publish)。还给出共享 TypeScript、ESLint 配置以及 UI 组件、工具函数、共享类型三种代码共享模式。
适用场景:多个包与应用需要共享代码、统一规范和原子变更的前后端项目,以及需要为 monorepo 配置 CI/CD、按受影响范围构建与部署、集中版本发布的团队。
限制与注意事项:资料未提供具体收费、价格等信息。需避免循环依赖、幽灵依赖、缓存输入配置错误,防止过度共享或共享不足;大型 monorepo 若工具配置不当会拖慢构建,CI/CD 与访问控制也更复杂。