用途
nx-run-tasks 用于帮助在 Nx 工作区中运行任务。当用户想要执行构建、测试、lint、serve 或工作区中定义的其他任务时,可以使用该技能。
主要能力
- 查看工作区中哪些任务可以运行。
- 运行单个任务。
- 一次运行多个任务。
- 仅对受影响的项目运行任务。
- 使用常用命令行标志控制任务执行行为。
使用方式
前置说明
如果用户没有全局安装 nx,可能需要在命令前加上 npx、pnpx 或 yarn。应查看 package.json 或 lockfile 来确定当前使用的包管理器。
要了解任何命令的更多细节,可以运行带 --help 的命令,例如 nx run-many --help、nx affected --help。
了解哪些任务可以运行
可以通过以下命令查看:
nx show project <projectname> --json
例如:
nx show project myapp --json
该命令输出包含 targets 部分,其中有可运行目标的信息。也可以直接查看 package.json 脚本或 project.json 的 targets,但可能会遗漏 Nx 插件推断出的任务。
运行单个任务
nx run <project>:<task>
其中 project 是 package.json 或 project.json(如果存在)中定义的项目名称。
运行多个任务
nx run-many -t build test lint typecheck
可以传入 -p 标志来筛选特定项目,否则会在所有项目上运行。也可以使用 --exclude 排除项目,使用 --parallel 控制并行进程数(默认是 3)。
示例:
- nx run-many -t test -p proj1 proj2 — 测试特定项目
- nx run-many -t test --projects=*-app --exclude=excluded-app — 测试匹配模式的项目
- nx run-many -t test --projects=tag:api-* — 按标签测试项目
对受影响的项目运行任务
使用 nx affected 仅对已更改的项目以及依赖已更改项目的项目运行任务。这在 CI 和大型工作区中特别有用。
nx affected -t build test lint
默认情况下,它会与基础分支进行比较。可以自定义:
- nx affected -t test --base=main --head=HEAD — 与特定的 base 和 head 比较
- nx affected -t test --files=libs/mylib/src/index.ts — 直接指定更改的文件
常用标志
以下标志适用于 run、run-many 和 affected:
- --skipNxCache — 即使结果已缓存也重新运行任务
- --verbose — 打印额外信息,例如堆栈跟踪
- --nxBail — 在第一个失败任务后停止执行
- --configuration=<name> — 使用特定配置(例如 production)
适用场景
- 在 Nx 工作区中执行构建、测试、lint、serve 等任务。
- 在本地开发时运行单个或多个项目的任务。
- 在 CI 中仅对受影响的项目运行任务,以节省时间。
- 在大型工作区中按项目、模式或标签筛选任务。
限制
资料中未提供关于该技能的其他限制、收费、价格、平台或效果信息。