主题
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-specresource 会生成常见 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 | 别名 | 用途 |
|---|---|---|
module | mo | 生成 Module。 |
controller | co | 生成 Controller。 |
service | s | 生成 Service。 |
provider | pr | 生成自定义 Provider。 |
guard | gu | 生成 Guard。 |
interceptor | itc | 生成 Interceptor。 |
pipe | pi | 生成 Pipe。 |
filter | f | 生成 Exception Filter。 |
middleware | mi | 生成 Middleware。 |
decorator | d | 生成自定义 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 包和运行环境信息。
