Skip to content

Nest CLI ​

Nest CLI 用于创建项目、生成 NestJS 组件、构建和启动应用。

安装 ​

bash
pnpm add -g @nestjs/cli

安装后可直接使用 nest 命令。升级 CLI 时执行 pnpm update -g @nestjs/cli。

创建项目 ​

bash
nest new my-api --strict --package-manager pnpm
cd my-api
pnpm start:dev

--strict 启用 TypeScript 严格模式;--package-manager pnpm 固定生成项目使用的包管理器。若只想查看生成内容,可附加 --dry-run;若已由现有仓库管理 Git,可附加 --skip-git。

生成组件 ​

nest generate 可缩写为 nest g。生成器会创建文件,并在适用时更新所属 Module。

bash
nest g module users
nest g controller users --no-spec
nest g service users --no-spec
nest g resource users --no-spec

resource 会生成常见 REST CRUD 的 Module、Controller、Service、DTO 和测试文件;生成后仍需按业务规则调整路由、DTO 和持久化层。

请求处理组件 ​

bash
nest g middleware common/request-id --flat --no-spec
nest g guard auth/session --no-spec
nest g pipe common/validation --no-spec
nest g interceptor common/response --no-spec
nest g filter common/http-error --no-spec

--flat 让 request-id.middleware.ts 直接生成在 src/common/,不额外创建 request-id/ 目录。

正确的 schematic 名称是 interceptor,别名是 itc:

bash
nest g interceptor common/timing --no-spec
nest g itc common/timing --no-spec

生成 Interceptor 后,仍需根据作用域使用 @UseInterceptors() 注册,或以 APP_INTERCEPTOR Provider 注册为全局 Interceptor。

其他常用生成器 ​

Schematic别名用途
modulemo生成 Module。
controllerco生成 Controller。
services生成 Service。
providerpr生成自定义 Provider。
guardgu生成 Guard。
interceptoritc生成 Interceptor。
pipepi生成 Pipe。
filterf生成 Exception Filter。
middlewaremi生成 Middleware。
decoratord生成自定义 Decorator。

构建与诊断 ​

bash
nest start --watch
nest build
nest info
nest g interceptor common/response --dry-run
nest g --help

--dry-run 只报告将要发生的文件变更,适合确认路径、命名和 Module 修改范围;nest info 用于查看 Nest 包和运行环境信息。

参考 ​

基于 MIT 许可发布