GitHub 工作流
- pr.yml:
- 运行所有拉取请求的测试
- 运行 nx affected,该命令仅执行缓存失效的任务
- 还使用 pkg-pr-new 来发布包预览并创建示例链接
- release.yml:
- 运行合并到发布分支的代码的测试
- 运行 nx run-many,该命令执行所有任务并确保输出已生成(发布构建所必需)
- 使用 Changesets 来处理版本控制和发布
Nx
TanStack 项目使用 Nx 来加速测试和构建的执行。任务在本地和 CI 中并行化和缓存。虽然 Nx 有一个广泛的插件系统,但我们仅将其用作 NPM 脚本运行器。
配置文件
- ./nx.json:主配置文件,定义了任务依赖、输入和输出
- ./package.json:需要手动指定根目录脚本(例如 test:format)
- ./**/package.json:包级别的脚本(例如 build)会自动检测
Nx Agents
- Nx 允许您将任务分发到多个 CI 机器上,从而增加可以并行运行的作业数量
- 请注意,这会带来相当大的启动延迟