NX 命令行实战指南:3 组命令把 Monorepo CI 从 40 分钟压到 15 分钟

📅 2026/8/24 8:45:32
NX 命令行实战指南:3 组命令把 Monorepo CI 从 40 分钟压到 15 分钟
NX 命令行实战指南3 组命令把 Monorepo CI 从 40 分钟压到 15 分钟【免费下载链接】nxThe Monorepo Platform that amplifies both developers and AI agents. Nx optimizes your builds, scales your CI, and fixes failed PRs automatically. Ship in half the time.项目地址: https://gitcode.com/GitHub_Trending/nx/nxNX 是专为 Monorepo 设计的任务编排器它的 NX 命令行会先算出工作区里每个项目读了哪些文件、依赖了谁再决定本次执行里哪些任务可以直接跳过、哪些可以并行。靠任务缓存、依赖影响分析、批量并行这三件事一个 28 个项目的电商 Monorepo 的 CI 可以从每次 PR 全量测试 40 分钟降到 15 分钟以内。先认识 NX 命令行的基本形状所有命令都遵循同一个形状nx [目标] [项目] --[参数]。serve/build起开发服务器、打生产包test/e2e跑单测、跑端到端测试run显式指定项目执行某个目标如nx run admin:lint每个目标定义在各自项目的project.json里想查某个命令的全部参数直接nx 命令 --help即可。nx serve storefront # 起前端开发服务器 nx build checkout-lib # 单独构建一个库 nx test date-utils # 只测日期工具库 nx run admin:e2e # 给管理后台跑 E2E图一个典型的 NX 工作区多个 app 与共享库集中管理共享库被多个应用依赖。用依赖图谱看清谁依赖谁改一个共享库为什么一堆无关模块跟着报错nx graph把依赖关系直接画出来给你看。它会在本地起一个交互式页面每个节点是一个项目箭头方向表示谁依赖谁想存档给团队评审加一个--file参数就能导出一份静态 HTML不需要保持终端开着。nx graph # 打开交互式依赖图谱 nx graph --filedist/graph.html # 导出静态文件方便评审图NX 依赖图谱的局部视图能直观看到共享库的改动会波及哪些下游模块。看懂图谱之后排障的思路就从猜哪个模块坏了变成沿着箭头找到所有下游。让 CI 只测被改动的模块affected影响分析是 CI 提速的主力NX 对比两个提交的差异算出哪些项目的输入文件真的变了只对这些项目执行你指定的目标。它的执行逻辑在 tasks-runner 源码 里想深入调度细节可以从这里读起。nx affected -t test # 相对上一次提交测受影响项目 nx affected -t test --baseorigin/main # 相对 main 分支全量差异 nx affected -t test:checkout-lib,admin # 显式列出项目把这条命令放进 GitHub Actions替代全量nx run-many -t test多数 PR 的测试量会明显下降- run: npx nx affected -t test --baseorigin/main --headHEAD一个具体的体感那个 28 个项目的电商仓库某天只改了date-utils一个叶子库CI 从 38 分钟降到 11 分钟——因为affected判定只有 4 个直接消费方受影响。用缓存兜底并行放大收益缓存解决同样的活别干两遍NX 对每个任务做指纹计算源文件、配置、依赖的输出都没变就直接从缓存默认在.nx/cache目录取结果终端里那行existing outputs match the cache就是命中了。场景用法怀疑缓存结果不对nx test auth --skip-nx-cache强制重跑怀疑缓存整体被污染nx reset清空缓存并重启守护进程clear-cache是它的别名全量检查但想快nx run-many -t lint,test --parallel4并行执行--dry-run可先预览怀疑环境依赖问题NX_VERBOSE_LOGGINGtrue nx build app看详细日志nx report导出环境信息团队协作上三条习惯值得固化CI 一律走affected本地全量留给发布前每个目标在nx.json里如实声明inputs/outputs声明不准缓存就会误判升级 NX 大版本后跑一次nx reset避免新旧指纹混用。3 步立即可执行本地敲nx graph打开图谱花两分钟认出自己项目的直接依赖心里有数再动手。打开 CI 配置把全量nx run-many -t test换成nx affected -t test --baseorigin/main下一次 PR 就能看到测试量的变化。发布日前夕跑一次nx reset加nx run-many -t build --parallel4 --dry-run先预览任务规模再放心全量构建。图开启缓存后 NX 的任务执行演示未改动的项目直接从缓存命中终端输出显著变短。【免费下载链接】nxThe Monorepo Platform that amplifies both developers and AI agents. Nx optimizes your builds, scales your CI, and fixes failed PRs automatically. Ship in half the time.项目地址: https://gitcode.com/GitHub_Trending/nx/nx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考