Nx生成器技能Skill nx-generate

此技能用于自动化代码生成和项目管理,利用 Nx 生成器创建脚手架、应用程序和库,减少重复工作并确保代码库一致性。关键词:Nx 生成器、代码生成、脚手架、自动化、单仓库、DevOps、前端开发、后端开发。

DevOps 0 次安装 0 次浏览 更新于 3/15/2026

name: nx-generate description: 使用 Nx 生成器生成代码。在创建脚手架代码或转换现有代码时使用 - 例如创建库或应用程序,或任何其他模板代码或自动化重复任务。当使用 Nx 生成代码时,始终首先使用此技能,而不是调用 MCP 工具或立即运行 nx generate。

运行 Nx 生成器

Nx 生成器是强大的工具,用于在单仓库中创建脚手架项目、自动化代码迁移或自动化重复任务。它们确保代码库的一致性并减少模板工作。

此技能适用于用户希望:

  • 创建新项目,如库或应用程序
  • 创建功能或模板代码的脚手架
  • 运行特定于工作区或自定义的生成器
  • 做任何其他 Nx 生成器存在的事情

生成器发现流程

步骤 1:列出可用生成器

使用 Nx CLI 发现可用生成器:

  • 列出插件所有生成器:npx nx list @nx/react
  • 查看可用插件:npx nx list

这包括:

  • 插件生成器(例如,@nx/react:library@nx/js:library
  • 本地工作区生成器(定义在仓库自己的插件中)

步骤 2:匹配生成器到用户请求

基于用户请求,识别哪些生成器可以满足他们的需求。考虑:

  • 他们想要创建什么类型的工件(库、应用程序等)
  • 哪个框架或技术栈相关
  • 是否提到特定生成器名称

重要:当本地工作区生成器和外部插件生成器都可以满足请求时,始终优先使用本地工作区生成器。本地生成器是针对特定仓库的模式和约定定制的。

有可能用户请求是没有任何 Nx 生成器可以满足的。在这种情况下,您可以停止使用此技能,并尝试以其他方式帮助用户。然而,这需要高度证明。在放弃之前,仔细考虑每个可用的生成器。在做出决定前,查看任何可能相关的细节。

预执行检查清单

在运行任何生成器之前,完成这些步骤:

1. 获取生成器模式

使用 --help 标志理解所有可用选项:

npx nx g @nx/react:library --help

注意:

  • 必须提供的必需选项
  • 可能相关的可选选项
  • 可能需要覆盖的默认值

2. 阅读生成器源代码

理解生成器实际做什么有助于您:

  • 知道将创建/修改什么文件
  • 理解任何副作用(更新配置、安装依赖等)
  • 识别可能不明显的选项

找到生成器源代码:

  • 对于插件生成器:使用 node -e "console.log(require.resolve('@nx/<plugin>/generators.json'));" 找到 generators.json,然后从那里定位源代码
  • 如果失败,直接从 node_modules/<plugin>/generators.json 读取
  • 对于本地生成器:它们通常在 tools/generators/ 或本地插件目录中。您可以在仓库中搜索生成器名称以找到它。

2.5 重新评估生成器是否正确

一旦您理解了所选生成器的作用,重新考虑:这是服务用户请求的正确生成器吗? 如果不是,可以回到生成器发现流程,并在继续之前选择不同的生成器。如果这样做,请确保再次完成整个预执行检查清单。

3. 理解仓库上下文

生成之前,检查代码库的目标区域:

  • 查看类似的现有工件(其他库、应用程序等)
  • 识别仓库中使用的模式和约定
  • 注意命名约定、文件结构和配置模式
  • 在配置生成器时尝试匹配这些模式

例如,如果类似的库使用特定的测试运行器、构建工具或 linter,请尝试匹配它。 如果项目或其他工件以特定命名约定组织,请尝试匹配它。

4. 验证必需选项

确保所有必需选项都有值:

  • 将用户请求映射到生成器选项
  • 尽可能从上下文中推断值
  • 向用户询问任何关键缺失信息

执行

请记住,如果用户没有全局安装 nx,您可能必须在命令前添加 npx/pnpx/yarn 前缀。 许多生成器会根据执行位置表现不同。例如,第一方 nx 库生成器使用当前工作目录来确定库应放置的目录。这非常重要。

考虑干运行(可选)

首先使用 --dry-run 运行强烈鼓励但不是强制性的。使用您的判断:

  • 对于复杂生成器或不熟悉的领域:先进行干运行
  • 对于简单、熟悉的生成器:可以直接进行
  • 干运行显示文件名和创建/删除/修改标记,但不显示内容
  • 有些情况下生成器不支持干运行(例如,如果它需要安装 npm 包) - 在这种情况下 --dry-run 可能会失败。不要气馁,只需继续实际运行生成器,并从那里迭代。

运行生成器

执行生成器:

nx generate <generator-name> <options> --no-interactive

关键:始终包含 --no-interactive 以防止提示挂起执行。

示例:

nx generate @nx/react:library --name=my-utils --no-interactive

处理生成器失败

如果生成器失败:

  1. 诊断错误 - 仔细阅读错误消息
  2. 识别原因 - 缺失选项、无效值、冲突等
  3. 尝试自动修复 - 调整选项或解决冲突
  4. 重试 - 使用更正选项再次运行生成器

常见失败原因:

  • 缺失必需选项
  • 无效选项值
  • 与现有文件冲突
  • 缺失依赖
  • 生成器不支持某些标志组合

后生成

1. 修改生成代码(如果需要)

生成器提供起点,但输出可能需要调整以满足用户的特定要求:

  • 按请求添加或修改功能
  • 调整导入、导出或配置
  • 与仓库中的现有代码模式集成

2. 格式化代码

对所有生成/修改的文件运行格式化:

nx format --fix

其他语言可能也需要不同的格式化调用。

3. 运行验证

验证生成的代码是否正确工作。这取决于生成器类型和可用目标而异。 如果生成器创建了新项目,直接运行其目标 使用您的判断来确定需要验证什么。

示例:

nx lint <new-project>
nx test <new-project>
nx build <new-project>

4. 处理验证失败

当验证失败时:

如果范围可管理(一些 lint 错误、小类型问题):

  • 修复问题
  • 重新运行验证确认

如果问题广泛(许多错误、复杂问题):

  • 先尝试简单、明显的修复
  • 如果仍然失败,升级到用户:
    • 生成内容的描述
    • 什么验证失败
    • 您尝试修复了什么
    • 剩余需要用户输入的问题

错误处理

生成器失败

  • 检查错误消息以了解具体原因
  • 验证所有必需选项已提供
  • 检查与现有文件的冲突
  • 确保生成器名称和选项正确

缺失选项

  • 咨询生成器模式以了解必填字段
  • 当合理时从上下文推断值
  • 向用户询问无法推断的值

关键原则

  1. 本地生成器优先 - 当两者都可以工作时,始终优先使用工作区/本地生成器而不是外部插件生成器

  2. 运行前理解 - 阅读模式和源代码以完全理解会发生什么

  3. 无提示 - 始终使用 --no-interactive 防止挂起

  4. 生成器是起点 - 根据需要修改输出以完全满足用户要求

  5. 验证更改有效 - 不要只是生成;确保代码构建、lint 和测试通过

  6. 主动修复 - 不要只报告错误;当可能时尝试自动解决它们

  7. 匹配仓库模式 - 研究仓库中类似的现有代码并匹配其约定