logologo
文档仓库
文档仓库
logologo
开始

概述

第一步
控制器
提供者
模块
中间件
异常过滤器
管道
守卫
拦截器
自定义装饰器

基础

自定义提供程序
异步提供者
动态模块
注入作用域
循环依赖
模块引用
懒加载模块
执行上下文
生命周期事件
发现服务
平台无关
单元测试

技术

配置
SQL
Mongo
验证
缓存
序列化
版本控制
任务调度
队列
日志
Cookies
事件
压缩
文件上传
文件流
HTTP 模块
Session
MVC
性能(Fastify)
SSE

安全

认证
授权
加密与哈希
Helmet
CORS
CSRF
速率限制

GraphQL

快速开始
解析器
变更
订阅
标量
指令
接口
联合与枚举
字段中间件
类型映射
插件
复杂度
扩展
CLI 插件
生成SDL
共享模型
其他功能
联邦

WebSocket

网关
异常过滤器
管道
守卫
拦截器
适配器

微服务

基础
Redis
MQTT
NATS
RabbitMQ
Kafka
gRPC
自定义传输
异常过滤器
管道
守卫
拦截器
部署
独立应用程序

CLI

概述
工作区
库
用法
脚本

OpenAPI

介绍
装饰器
类型映射
操作
其他特性
安全
类型与参数
CLI 插件

实用示例

REPL
CRUD生成器
SWC
Passport(认证)
热重载
MikroORM
TypeORM
Mongoose
Sequelize
路由模块
Swagger
健康检查
CQRS
Compodoc
Prisma
Sentry
静态资源
Commander
异步本地存储
Necord
套件(原Automock)

常见问题

Serverless
HTTP 适配器
长连接
全局前缀
原始请求体
混合应用
HTTPS & 多服务器
请求生命周期
错误

开发工具

概述
CI/CD
迁移指南
API参考(官方)

生态与案例

谁在用
精彩资源

支持

支持

社区

贡献者

最后更新于: 2025/11/18 02:11:37

上一页独立应用程序
下一页工作区

#概述

Nest CLI 是一个命令行界面工具,可帮助您初始化、开发和维护 Nest 应用程序。它以多种方式提供支持,包括项目脚手架搭建、开发模式下的服务运行,以及为生产环境构建和打包应用程序。该工具体现了最佳实践的架构模式,以鼓励构建结构良好的应用。

#安装

注意 :本指南中我们将使用 npm 安装包(包括 Nest CLI)。您也可以根据需要选择其他包管理器。使用 npm 时,有几种方式可以管理操作系统命令行如何解析 nest CLI 二进制文件的位置。这里我们介绍使用 -g 选项全局安装 nest 二进制文件的方法。这种方式提供了便利性,也是文档中默认采用的方式。请注意,全局安装任何 npm 包都需要用户自行确保运行的是正确版本。这也意味着如果您有多个项目,每个项目都将运行相同版本的 CLI。一个合理的替代方案是使用内置于 npm cli 的 npx 程序(或其他包管理器的类似功能)来确保运行的是 Nest CLI 的受控版本 。建议您查阅 npx 文档或咨询 DevOps 支持人员获取更多信息。

使用 npm install -g 命令全局安装 CLI(有关全局安装的详细信息,请参阅上面的注意事项 )。

$ npm install -g @nestjs/cli
提示

你也可以在不全局安装 CLI 的情况下使用此命令 npx @nestjs/cli@latest。

#基本工作流程

安装完成后,你可以通过 nest 可执行文件直接从操作系统命令行调用 CLI 命令。输入以下内容查看可用的 nest 命令:

$ nest --help

通过以下结构获取单个命令的帮助。将示例中的 generate 替换为任意命令(如 new、add 等),即可查看该命令的详细帮助信息:

$ nest generate --help

要创建、构建并运行一个全新的基础 Nest 项目(开发模式),请进入新项目的父目录,并执行以下命令:

$ nest new my-nest-project
$ cd my-nest-project
$ npm run start:dev

在浏览器中打开 http://localhost:3000 即可查看运行中的新应用。当您修改任何源文件时,应用程序会自动重新编译并加载。

提示

我们推荐使用 SWC 构建器以获得更快的构建速度(性能比默认 TypeScript 编译器快 10 倍)。

#项目结构

当你运行 nest new 命令时,Nest 会通过创建一个新文件夹并生成初始文件集来构建一个样板应用结构。你可以按照本文档的说明,继续在这个默认结构中工作并添加新组件。我们将 nest new 生成的项目结构称为标准模式 。Nest 还支持另一种用于管理多个项目和库的结构,称为 monorepo 模式 。

除了关于构建过程如何运作的一些特殊考虑(本质上,monorepo 模式简化了有时会因 monorepo 风格项目结构而产生的构建复杂性),以及内置的库支持外,Nest 的其他功能及本文档内容均同等适用于标准模式和 monorepo 模式的项目结构。事实上,你可以在未来任何时候轻松地从标准模式切换到 monorepo 模式,因此在学习 Nest 的过程中可以放心地推迟这个决定。

你可以使用任意一种模式来管理多个项目。以下是它们之间差异的简要总结:

功能标准模式Monorepo 模式
多项目独立文件系统结构单一文件系统结构
node_modules 和 package.json独立实例跨 monorepo 共享
默认编译器tscwebpack
编译器设置单独指定可按项目覆盖的 Monorepo 默认配置
配置文件如 eslint.config.mjs、.prettierrc 等单独指定跨 monorepo 共享
nest build 和 nest start 命令目标默认自动指向上下文中的(唯一)项目目标默认为 monorepo 中的默认项目
库手动管理,通常通过 npm 包管理内置支持,包括路径管理和打包功能

阅读工作区和库相关章节获取更详细信息,以帮助您决定哪种模式最适合您的需求。

#命令行界面(CLI)命令语法

所有 nest 命令都遵循相同格式:

nest commandOrAlias requiredArg [optionalArg] [options]

例如:

$ nest new my-nest-project --dry-run

这里,new 是 commandOrAlias。new 命令有一个别名 n。my-nest-project 是 requiredArg。如果命令行未提供 requiredArg,nest 会提示输入。此外,--dry-run 有一个等效的简写形式 -d。考虑到这一点,以下命令与上述命令等效:

$ nest n my-nest-project -d

大多数命令及部分选项都有别名。尝试运行 nest new --help 来查看这些选项和别名,并确认你对上述结构的理解。

#命令概览

对以下任意命令运行 nest <command> --help 可查看特定于该命令的选项。

查看用法说明获取每个命令的详细描述。

命令别名描述
newn搭建一个包含所有运行所需样板文件的标准模式应用程序。
generateg根据原理图生成和/或修改文件。
build将应用程序或工作区编译到输出文件夹中。
start编译并运行应用程序(或工作区中的默认项目)。
add导入已打包为 nest 库的库,并运行其安装原理图。
infoi显示已安装的 Nest 包信息及其他有用的系统信息。

#要求

Nest CLI 需要 Node.js 二进制文件具备国际化支持 (ICU),例如来自 Node.js 项目页面的官方二进制文件。若遇到与 ICU 相关的错误,请检查您的二进制文件是否满足此要求。

node -p process.versions.icu

如果命令输出 undefined,则表示您的 Node.js 二进制文件不支持国际化。