SuperAPI AI 工具集

nx-workspace

编程与开发

查看项目

更新于 10-16 06:03

技能介绍

用途

nx-workspace 是一个用于探索和理解 Nx 工作区的技能,采用只读方式,帮助用户了解工作区结构、项目配置、可用目标(targets)以及项目之间的依赖关系。它适用于回答关于工作区、项目或任务的问题,也适用于 nx 命令执行失败或需要排查工作区同步问题的场景。

主要能力

该技能围绕 Nx CLI 的查询命令展开,主要能力包括:

  • 列出工作区中的项目:使用 nx show projects,支持按名称、glob 模式、标签(如 tag:name)、目录以及否定模式(如 !project-name)进行过滤。
  • 按目标过滤项目:使用 --withTarget 参数,例如 nx show projects --withTarget build。
  • 组合过滤条件:例如 nx show projects --type lib --withTarget test、nx show projects --affected --exclude="-e2e"。
  • 获取项目完整配置:使用 nx show project <name> --json,该命令返回包含插件推断目标的完整解析配置,而非仅读取 project.json 中的部分配置。
  • 查看目标信息:包括目标名称、执行器/命令、选项、输入/输出(用于缓存)等。
  • 读取工作区级配置:直接读取 nx.json,关注 targetDefaults、namedInputs、plugins、generators 等部分。
  • 查询受影响项目:支持 nx show projects --affected。
  • 查看项目依赖图:使用 nx graph --print,可获取节点与依赖关系,并查找依赖某库的项目。

使用方式

该技能通过命令行执行 Nx 命令,并建议使用 --json 标志获取结构化输出,再配合 jq、grep 等本地工具进行程序化处理,而非手动计数或解析输出。

如果 nx 未全局安装,可能需要为命令添加 npx、pnpx 或 yarn 前缀,具体取决于锁文件所指示的包管理器。

常用命令示例:

  • 列出所有项目:nx show projects
  • 按 glob 过滤:nx show projects --projects "apps/*"
  • 按标签过滤:nx show projects --projects "tag:publishable"
  • 按目标过滤:nx show projects --withTarget build
  • 输出 JSON:nx show projects --json
  • 获取项目完整配置:nx show project my-app --json
  • 提取目标名称:nx show project my-app --json | jq '.targets | keys'
  • 查看目标执行器:nx show project my-app --json | jq '.targets.build.executor'
  • 查看目标输入/输出:nx show project my-app --json | jq '.targets.build.inputs'
  • 读取 nx.json:cat nx.json
  • 查看项目图:nx graph --print
  • 查找依赖某库的项目:nx graph --print | jq '.graph.dependencies | to_entries[] | select(.value[].target == "shared-ui") | .key'

适用场景

  • 回答“这个工作区里有什么?”:使用 nx show projects、nx show projects --type app、nx show projects --type lib。
  • 回答“如何构建/测试/检查项目 X?”:使用 nx show project X --json | jq '.targets | keys' 及具体目标配置。
  • 回答“什么依赖了库 Y?”:使用项目图查询依赖方。
  • 排查 nx 命令失败:检查项目目标是否存在,或工作区是否同步。
  • 处理工作区不同步问题:使用 nx sync,若同步无法修复陈旧缓存则使用 nx reset。

限制

该技能为只读探索,不涉及修改工作区配置或执行构建、测试等任务。资料中未提供关于收费、价格、平台支持范围或具体效果的信息。使用前需确认 nx 是否全局安装,否则需根据锁文件选择 npx、pnpx 或 yarn 前缀。