nx-monorepo 是做什么的?
为 TypeScript/JavaScript 项目提供全面的 Nx 单体仓库管理指导。用于创建 Nx 工作区、生成应用/库/组件、运行受影响的命令、设置 CI/CD、配置模块联合或在 Nx 内实现 NestJS 后端。
功能特性
- Nx 工作区创建与管理:使用
create-nx-workspace初始化项目,并遵循最佳实践组织工作区结构。 - 生成应用、库和组件:使用 Nx 生成器快速创建 Angular、React、Node 等框架的应用和库。
- 受影响的命令:利用
nx affected仅对受影响的子集运行构建、测试、lint 等操作,优化 CI/CD 流水线。 - CI/CD 集成:提供 CI/CD 配置建议,支持 GitHub Actions、GitLab CI、CircleCI 等平台。
- 模块联合:帮助配置 Webpack 或 Nx 原生 Module Federation 以支持微前端架构。
- NestJS 后端集成:在 Nx 工作区中生成并管理 NestJS 应用,实现前后端共享类型与库。
使用场景
- 从头开始创建新的 Nx 单体仓库
- 为现有工作区添加新应用或库
- 运行仅针对变更部分的构建和测试
- 设置微前端架构
- 在单体仓库中集成 NestJS 后端
依赖
- Node.js 18+ 和 npm/yarn/pnpm
- Nx CLI(可通过
npx nx使用)
使用方式示例
# 创建一个新工作区
npx create-nx-workspace@latest my-workspace --preset=ts
# 在工作区内生成一个 React 应用
npx nx g @nx/react:app my-app
# 生成一个共享库
npx nx g @nx/nest:lib my-lib
# 运行所有受影响项目的测试
npx nx affected:test --base=main
# 构建特定项目
npx nx build my-app
最佳实践
- 使用
nx graph可视化项目依赖关系 - 利用
nx format:write保持代码格式一致 - 为库和应用程序定义清晰的标签(tags),限制依赖关系
- 使用环境变量管理不同环境的配置
平台兼容性
该技能适用于支持 AI 辅助工具的所有平台,包括但不限于:
- Cursor:在编辑器内直接提供指导
- Claude Code:通过 CLI 交互提供帮助
- Codex:自动完成代码生成和建议
贡献
如果您发现任何问题或希望贡献改进,请提交 issue 或 pull request。