Cli

概述

了解 Nest CLI 命令行工具,包括安装、基本工作流程、项目结构和命令语法。

概述

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

提示 或者,您可以使用此命令 npx @nestjs/cli@latest 而无需全局安装 cli。

基本工作流程

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

$ nest --help

使用以下结构获取单个命令的帮助。在下面的示例中,将您看到的 generate 替换为任何命令,如 newadd 等,以获取该命令的详细帮助:

$ 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_modulespackage.json独立实例在 monorepo 中共享
默认编译器tscwebpack
编译器设置分别指定Monorepo 默认值,可以按项目覆盖
配置文件如 eslint.config.mjs.prettierrc分别指定在 monorepo 中共享
nest buildnest start 命令目标默认自动指向上下文中的(唯一)项目目标默认指向 monorepo 中的默认项目
手动管理,通常通过 npm 打包内置支持,包括路径管理和打包

阅读工作空间部分以获取更详细的信息,帮助您决定哪种模式最适合您。

CLI 命令语法

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

nest commandOrAlias requiredArg [optionalArg] [options]

例如:

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

这里,newcommandOrAliasnew 命令有一个别名 nmy-nest-projectrequiredArg。如果在命令行上没有提供 requiredArgnest 将提示您输入。另外,--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 需要一个构建有国际化支持 (ICU) 的 Node.js 二进制文件,例如来自 Node.js 项目页面的官方二进制文件。如果您遇到与 ICU 相关的错误,请检查您的二进制文件是否满足此要求。

node -p process.versions.icu

如果命令打印 undefined,则您的 Node.js 二进制文件没有国际化支持。