Cli

CLI 命令参考

详细了解 NestJS CLI 的所有命令和选项,包括创建、生成、构建和运行项目的完整指南。

CLI 命令参考

nest new

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

$ 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]指定原理图集合。使用包含原理图的已安装 npm 包的包名。
别名:-c
--strict启用以下 TypeScript 编译器标志启动项目:strictNullChecksnoImplicitAnystrictBindCallApplyforceConsistentCasingInFileNamesnoFallthroughCasesInSwitch

nest generate

基于原理图生成和/或修改文件

$ nest generate <schematic> <name> [options]
$ nest g <schematic> <name> [options]
参数
参数描述
<schematic>要生成的 schematiccollection:schematic。请参阅下表了解可用的原理图。
<name>生成组件的名称。
原理图
名称别名描述
app在 monorepo 中生成新应用程序(如果是标准结构则转换为 monorepo)。
librarylib在 monorepo 中生成新库(如果是标准结构则转换为 monorepo)。
classcl生成新类。
controllerco生成控制器声明。
decoratord生成自定义装饰器。
filterf生成过滤器声明。
gatewayga生成网关声明。
guardgu生成守卫声明。
interfaceitf生成接口。
interceptoritc生成拦截器声明。
middlewaremi生成中间件声明。
modulemo生成模块声明。
pipepi生成管道声明。
providerpr生成提供者声明。
resolverr生成解析器声明。
resourceres生成新的 CRUD 资源。有关更多详细信息,请参阅 CRUD(资源)生成器。(仅限 TS)
services生成服务声明。
选项
选项描述
--dry-run报告将要进行的更改,但不更改文件系统。
别名:-d
--project [project]应添加元素的项目。
别名:-p
--flat不为元素生成文件夹。
--collection [collectionName]指定原理图集合。使用包含原理图的已安装 npm 包的包名。
别名:-c
--spec强制生成规范文件(默认)
--no-spec禁用规范文件生成

nest build

将应用程序或工作空间编译到输出文件夹中。

此外,build 命令还负责:

  • 通过 tsconfig-paths 映射路径(如果使用路径别名)
  • 使用 OpenAPI 装饰器注释 DTO(如果启用了 @nestjs/swagger CLI 插件)
  • 使用 GraphQL 装饰器注释 DTO(如果启用了 @nestjs/graphql CLI 插件)
$ nest build <name> [options]
参数
参数描述
<name>要构建的项目名称。
选项
选项描述
--path [path]tsconfig 文件的路径。
别名 -p
--config [path]nest-cli 配置文件的路径。
别名 -c
--watch在监视模式下运行(实时重载)。
如果您使用 tsc 进行编译,可以键入 rs 重新启动应用程序(当 manualRestart 选项设置为 true 时)。
别名 -w
--builder [name]指定用于编译的构建器(tscswcwebpack)。
别名 -b
--webpack使用 webpack 进行编译(已弃用:请改用 --builder webpack)。
--webpackPathwebpack 配置的路径。
--tsc强制使用 tsc 进行编译。
--watchAssets监视非 TS 文件(如 .graphql 等资产)。有关更多详细信息,请参阅资产
--type-check启用类型检查(使用 SWC 时)。
--all构建 monorepo 中的所有项目。
--preserveWatchOutput在监视模式下保留过时的控制台输出,而不是清除屏幕。(仅限 tsc 监视模式)

nest start

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

$ nest start <name> [options]
参数
参数描述
<name>要运行的项目名称。
选项
选项描述
--path [path]tsconfig 文件的路径。
别名 -p
--config [path]nest-cli 配置文件的路径。
别名 -c
--watch在监视模式下运行(实时重载)
别名 -w
--builder [name]指定用于编译的构建器(tscswcwebpack)。
别名 -b
--preserveWatchOutput在监视模式下保留过时的控制台输出,而不是清除屏幕。(仅限 tsc 监视模式)
--watchAssets在监视模式下运行(实时重载),监视非 TS 文件(资产)。有关更多详细信息,请参阅资产
--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 库 的库,运行其安装原理图。

$ nest add <name> [options]
参数
参数描述
<name>要导入的库的名称。

nest info

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

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

[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