Nx 功能介绍

Nx 是一个面向 Monorepo(单仓多项目)的智能构建系统 + 开发工具平台,最初为 JS/TS 生态设计,现在也支持 .NET、Java、Go、Python 等。核心目标就一句话:
别重复构建、别重复测试、别全量跑 CI——只跑“真正受影响”的那部分,而且跑过的结果直接复用。

一、Nx 到底是什么

不是包管理器(不替代 npm/pnpm/yarn),也不是框架(不替代 React/Angular/Next)。
它是坐在你现有工具链上面的一层:
  • 包管理:npm / pnpm / yarn workspaces
  • 构建工具:Vite / Webpack / tsc / Next / Angular CLI
  • 测试工具:Jest / Vitest / Playwright
  • Nx 负责:调度这些工具、算依赖、算缓存、算 affected、画依赖图
最小认知模型:
Nx = 项目依赖图 + 任务编排 + 计算缓存 + 代码生成
Nx 的命令体系其实很清晰,可以分成 项目级命令、批量命令、依赖/影响分析命令、代码生成命令​ 和 工程治理命令​ 五大类。下面按「你实际会用到」的方式整理,而不是按文档顺序罗列。

二、最常用:项目级命令(单项目)

1️⃣ nx run

执行某个项目的某个 target(最标准写法)
 
nx run my-app:build
nx run my-lib:test
 
 
等价简写:
 
nx build my-app
nx test my-lib
 
 
📌 所有 Nx 命令最终都会解析成 project:target

2️⃣ nx build / test / lint / serve

内置常用 target 的快捷方式
 
nx build my-app
nx test my-app
nx lint my-app
nx serve my-app
 
 

二、核心命令:批量执行(你刚用的)

3️⃣ nx run-many

对 多个项目​ 执行同一个/多个 target
 
nx run-many -t build
nx run-many -t build test lint
nx run-many -t analyze -p app1 app2
nx run-many -t build --all
 
 
常用参数:
 
参数
含义
-t
target
-p
指定项目
--all
所有项目
--affected
受影响项目
--parallel
并行执行
✅ CI / 大仓最常用的命令

4️⃣ nx affected

只跑 本次改动影响到的项目
 
nx affected -t build
nx affected -t test
nx affected -t analyze
 
 
常见搭配:
 
nx affected -t build --parallel
nx affected -t test --codeCoverage
 
 
📌 底层依赖:
  • git diff
  • 项目依赖图

三、依赖 & 影响分析(Nx 最强能力)

5️⃣ nx graph

打开 可视化依赖图(强烈推荐)
 
nx graph
 
 
用途:
  • 看项目依赖关系
  • 查循环依赖
  • 理解为什么某个项目被 affected
也可以只看受影响项目:
 
nx graph --affected
 
 

6️⃣ nx show

查看项目信息(调试神器)
 
nx show project my-app
nx show projects
 
 

7️⃣ nx dep-graph(旧)

新版本已统一到 nx graph

四、代码生成(Generator)

8️⃣ nx generate(或 nx g)

生成代码、项目、组件、模块
 
nx g @nx/react:app my-app
nx g @nx/react:component my-comp --project=my-app
nx g @nx/workspace:lib my-lib
 
 
常用 generator:
 
场景
示例
新建 app
nx g @nx/react:app
新建 lib
nx g @nx/workspace:lib
新建组件
nx g @nx/react:component
迁移工具
nx g @nx/web:static-config

五、工程治理 & 维护

9️⃣ nx migrate

升级 Nx 和插件版本
 
nx migrate latest
nx migrate 16.0.0
 
 
流程:
 
nx migrate <version>
npm install
nx migrate --run-migrations
 
 

🔟 nx format

代码格式化(prettier)
 
nx format:write
nx format:check
 
 

1️⃣1️⃣ nx reset

清空 Nx 缓存(排错第一招)
 
nx reset
 
 

1️⃣2️⃣ nx report

输出环境信息(提 issue 必备)
 
nx report
 
 

六、缓存 & 性能相关(进阶)

1️⃣3️⃣ nx exec

直接执行命令(绕过 target)
 
nx exec -- echo hello
 
 

1️⃣4️⃣ 缓存相关(隐式)

Nx 默认:
  • 缓存 build / test / lint
  • 命中缓存直接跳过执行
查看缓存:
 
nx show project my-app
 
 
关闭缓存:
 
nx run my-app:build --skip-nx-cache
 
 

七、命令速查表(收藏级)

 
命令
用途
nx run
执行指定 target
nx build / test / lint / serve
快捷命令
nx run-many
多项目批量执行
nx affected
只跑受影响项目
nx graph
依赖可视化
nx generate
生成代码
nx migrate
升级 Nx
nx reset
清缓存
nx report
环境信息
nx format
格式化

八、一个典型日常流程

 
# 写代码
git add .

# 只构建受影响项目
nx affected -t build

# 看依赖关系
nx graph

# 有问题清缓存
nx reset
 
 

如果你愿意,下一步我可以帮你:
posted @ 2026-10-06 21:16  Albert_MIN  阅读(3)  评论(0)    收藏  举报