Skip to content

CLI 命令参考

nest new

创建一个新的(标准模式)Nest 项目。

bash
$ nest new <name> [options]
$ nest n <name> [options]

说明

创建并初始化一个新的 Nest 项目。过程中会提示你选择包管理器。

  • 创建一个名为 <name> 的文件夹
  • 向该文件夹写入配置文件
  • 创建源码目录(/src)和端到端测试目录(/test
  • 在这些子目录中生成默认的应用组件文件和测试文件

参数

参数说明
<name>新项目的名称

选项

选项说明
--dry-run仅报告将要发生的变更,不真正修改文件系统。别名:-d
--skip-git跳过 git 仓库初始化。别名:-g
--skip-install跳过依赖安装。别名:-s
--package-manager [package-manager]指定包管理器,可选 npmyarnpnpm。所选包管理器需要已全局安装。别名:-p
--language [language]指定开发语言(TSJS)。别名:-l
--collection [collectionName]指定 schematics collection,使用已安装 npm 包的包名。别名:-c
--strict使用以下 TypeScript 编译器选项初始化项目:strictNullChecksnoImplicitAnystrictBindCallApplyforceConsistentCasingInFileNamesnoFallthroughCasesInSwitch

nest generate

基于 schematic 生成并/或修改文件。

bash
$ nest generate <schematic> <name> [options]
$ nest g <schematic> <name> [options]

参数

参数说明
<schematic>要生成的 schematiccollection:schematic。可用 schematic 见下表。
<name>生成组件的名称。

Schematics

名称别名说明
app在 monorepo 中生成一个新应用(若当前是标准结构,会自动转换为 monorepo)。
librarylib在 monorepo 中生成一个新类库(若当前是标准结构,会自动转换为 monorepo)。
classcl生成一个新类。
controllerco生成 controller 声明。
decoratord生成自定义装饰器。
filterf生成 filter 声明。
gatewayga生成 gateway 声明。
guardgu生成 guard 声明。
interfaceitf生成接口。
interceptoritc生成 interceptor 声明。
middlewaremi生成 middleware 声明。
modulemo生成 module 声明。
pipepi生成 pipe 声明。
providerpr生成 provider 声明。
resolverr生成 resolver 声明。
resourceres生成一个新的 CRUD 资源。详见 CRUD(resource)生成器。(仅 TS)
services生成 service 声明。

选项

选项说明
--dry-run仅报告将要发生的变更,不真正修改文件系统。别名:-d
--project [project]指定要将元素添加到哪个项目。别名:-p
--flat不为该元素创建单独文件夹。
--collection [collectionName]指定 schematics collection,使用已安装 npm 包的包名。别名:-c
--spec强制生成 spec 文件(默认行为)。
--no-spec禁用 spec 文件生成。

nest build

将一个应用或工作空间编译到输出目录。

此外,build 命令还负责:

  • 通过 tsconfig-paths 处理路径映射(如果你使用了 path alias)
  • 若启用了 @nestjs/swagger CLI 插件,则为 DTO 自动补充 OpenAPI 装饰器
  • 若启用了 @nestjs/graphql CLI 插件,则为 DTO 自动补充 GraphQL 装饰器
bash
$ nest build <name> [options]

参数

参数说明
<name>要构建的项目名

选项

选项说明
--path [path]tsconfig 文件路径。别名:-p
--config [path]nest-cli 配置文件路径。别名:-c
--watch以 watch 模式运行(热重载)。若使用 tsc 编译,且 manualRestarttrue,可输入 rs 手动重启应用。别名:-w
--builder [name]指定构建器:tscswcwebpack。别名:-b
--webpack使用 webpack 编译。(已废弃,建议使用 --builder webpack
--webpackPathwebpack 配置路径。
--tsc强制使用 tsc 编译。
--watchAssets监听非 TS 文件(如 .graphql 等资源)。详见工作空间中的 Assets
--type-check启用类型检查(在使用 SWC 时)。
--all在 monorepo 中构建全部项目。
--preserveWatchOutput在 watch 模式下保留过期控制台输出,而不是清屏。(仅 tsc watch 模式)

nest start

编译并运行一个应用(或工作空间中的默认项目)。

bash
$ nest start <name> [options]

参数

参数说明
<name>要运行的项目名

选项

选项说明
--path [path]tsconfig 文件路径。别名:-p
--config [path]nest-cli 配置文件路径。别名:-c
--watch以 watch 模式运行(热重载)。别名:-w
--builder [name]指定构建器:tscswcwebpack。别名:-b
--preserveWatchOutput在 watch 模式下保留过期控制台输出,而不是清屏。(仅 tsc watch 模式)
--watchAssets以 watch 模式运行并监听非 TS 资源文件。详见工作空间中的 Assets
--debug [hostport]以调试模式运行(会带上 --inspect)。别名:-d
--webpack使用 webpack 编译。(已废弃,建议使用 --builder webpack
--webpackPathwebpack 配置路径。
--tsc强制使用 tsc 编译。
--exec [binary]指定执行二进制,默认为 node。别名:-e
--no-shell不在 shell 中生成子进程(参见 node 的 child_process.spawn() 文档)。
--env-file从当前目录相对路径中的文件加载环境变量,并注入到应用可访问的 process.env
-- [key=value]可通过 process.argv 读取的命令行参数。

nest add

导入一个被打包为 nest library 的类库,并执行其安装 schematic。

bash
$ nest add <name> [options]

参数

参数说明
<name>要导入的类库名

nest info

显示已安装的 nest 包信息,以及其他有用的系统信息。例如:

bash
$ nest info
bash
 _   _             _      ___  _____  _____  _     _____
| \ | |           | |    |_  |/  ___|/  __ \| |   |_   _|
|  \| |  ___  ___ | |_     | |\ `--. | /  \/| |     | |
| . ` | / _ \/ __|| __|    | | `--. \| |    | |     | |
| |\  ||  __/\__ \| |_ /\__/ //\__/ /| \__/\| |_____| |_
\_| \_/ \___||___/ \__|\____/ \____/  \____/\_____/\___/

[System Information]
OS Version : macOS High Sierra
NodeJS Version : v20.18.0
[Nest Information]
microservices version : 10.0.0
websockets version : 10.0.0
testing version : 10.0.0
common version : 10.0.0
core version : 10.0.0

基于 NestJS 官方文档翻译