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
使用以下结构获取有关单个命令的帮助。在下面示例中,用任何命令(如 new
、add
等)替换 generate
,以获取有关该命令的详细帮助:
$ 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 样式项目结构引起的构建复杂性)和内置的 library 支持外,其余的 Nest 功能和本文档同样适用于标准和 monorepo 模式项目结构。事实上,您可以在将来的任何时候轻松地从标准模式切换到 monorepo 模式,因此您可以在仍在学习 Nest 时安全地推迟此决定。
您可以使用任一模式来管理多个项目。以下是差异的简要概述:
功能 | 标准模式 | Monorepo 模式 |
---|---|---|
多个项目 | 单独的文件系统结构 | 单个文件系统结构 |
node_modules 和 package.json | 单独的实例 | 跨 monorepo 共享 |
默认编译器 | tsc | webpack |
编译器设置 | 单独指定 | 每个项目都可以覆盖的 Monorepo 默认值 |
配置文件,如 .eslintrc.js 、.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
以查看特定于命令的选项。
请参阅 usage 了解每个命令的详细说明。