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

--flatrequest-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 许可发布