HogoZhang
2026-05-31·825 字·3 分钟阅读·
#nestjs#nodejs

NestJS CLI 与常用命令

介绍 NestJS CLI 的安装方式,以及 new、start、build、generate 等日常开发中最常用的命令与选项。


NestJS CLI 是开发 NestJS 应用的核心命令行工具,用于快速创建项目、生成代码、构建和运行应用。掌握 CLI 能显著减少样板代码,提升开发效率。

📦 安装

推荐全局安装,方便在终端中直接使用 nest 命令:

npm install -g @nestjs/cli

如果不希望全局安装,也可以使用 npx 临时运行:

npx @nestjs/cli@latest <command>

安装完成后,可通过以下命令验证:

nest --version

⌨️ 命令格式

所有 nest 命令都遵循统一格式:

nest <commandOrAlias> [requiredArg] [optionalArg] [options]

随时可以通过 nest --help 查看所有命令,或通过 nest <command> --help 查看特定命令的详细选项和别名。

1. 创建新项目:new(别名 n)

用于创建一个全新的 NestJS 项目,并自动生成标准目录结构和基础文件。

nest new my-nest-project

常用选项:

选项说明
--directory指定项目目录名
--dry-run / -d预览操作,不实际创建文件
--skip-git / -g跳过初始化 Git 仓库
--skip-install跳过自动安装依赖
--package-manager / -p指定包管理器(npm / yarn / pnpm)
--language指定语言(typescript 或 javascript),默认 TypeScript
--strict启用 TypeScript 严格模式

2. 开发与运行:start

编译并运行应用程序,是开发阶段最常用的命令。

nest start

常用选项:

选项说明
--watch热重载模式,监听文件变化并自动重启
--debug以调试模式启动
--watchAssets热重载时同时监听静态资源变化
--exec指定运行编译产物的命令(如 node)

开发时通常配合 package.json 中的脚本使用:

{
  "scripts": {
    "start:dev": "nest start --watch"
  }
}

3. 构建打包:build

将应用编译到输出目录(默认为 dist),用于生产环境部署。

nest build

常用选项:

选项说明
--webpack使用 Webpack 编译
--tsc使用 TypeScript 编译器(默认)
--watch监听文件变动,自动重新构建
--path / -p指定 tsconfig 路径

4. 生成代码:generate(别名 g)

最常用的命令之一,基于原理图(schematic)自动生成模块、控制器、服务等组件,减少重复编码。

nest generate <schematic> <name> [path]

常用的 schematic 类型:

类型别名说明
modulemo生成模块
controllerco生成控制器
services生成服务(Provider)
resourceres生成完整 REST API 或 GraphQL 资源
guardgu生成守卫
interceptoritc生成拦截器
filterf生成异常过滤器
middlewaremi生成中间件
pipepi生成管道
decoratord生成自定义装饰器
resolverr生成 GraphQL Resolver

常用选项:

选项说明
--no-spec不生成测试文件(*.spec.ts)
--flat不创建专属目录,文件直接放在当前路径
--dry-run / -d预览操作,不实际创建文件
--skip-import不在根模块中自动导入

示例:

# 生成 user 模块
nest g module user

# 生成 user 控制器(自动注册到 user 模块)
nest g controller user

# 生成 user 服务
nest g service user

# 一键生成完整 REST API 资源(推荐)
nest g resource user

执行 nest g resource user 时,CLI 会交互式询问 REST API 还是 GraphQL、是否生成 CRUD 入口等,适合快速搭建业务模块。

5. 其他辅助命令

命令别名说明
add—导入已打包为 Nest 库的第三方库,并运行其安装原理图
infoi显示系统信息、NestJS 包版本等
update—更新 @nestjs/* 依赖到最新兼容版本

查看项目依赖版本:

nest info

💡 实用技巧

Monorepo 支持:NestJS CLI 支持 monorepo 模式,可在同一仓库中管理多个应用和共享库。使用 nest generate app <name> 可在工作区中新增子应用。

加速构建:默认使用 tsc 编译,大型项目可考虑 SWC 构建器 替代,构建速度更快。

预览再执行:对 new、generate 等会修改文件系统的命令,建议先用 --dry-run 预览,确认生成路径和内容无误后再正式执行。

与 npm scripts 配合:实际项目中,CLI 命令通常封装在 package.json 的 scripts 里,例如:

{
  "scripts": {
    "build": "nest build",
    "start": "nest start",
    "start:dev": "nest start --watch",
    "start:debug": "nest start --debug --watch",
    "start:prod": "node dist/main"
  }
}

日常开发只需 npm run start:dev,无需每次手动输入完整 CLI 参数。