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] | 指定包管理器,可选 npm、yarn 或 pnpm。所选包管理器需要已全局安装。别名:-p |
--language [language] | 指定开发语言(TS 或 JS)。别名:-l |
--collection [collectionName] | 指定 schematics collection,使用已安装 npm 包的包名。别名:-c |
--strict | 使用以下 TypeScript 编译器选项初始化项目:strictNullChecks、noImplicitAny、strictBindCallApply、forceConsistentCasingInFileNames、noFallthroughCasesInSwitch |
nest generate
基于 schematic 生成并/或修改文件。
bash
$ nest generate <schematic> <name> [options]
$ nest g <schematic> <name> [options]参数
| 参数 | 说明 |
|---|---|
<schematic> | 要生成的 schematic 或 collection:schematic。可用 schematic 见下表。 |
<name> | 生成组件的名称。 |
Schematics
| 名称 | 别名 | 说明 |
|---|---|---|
app | 在 monorepo 中生成一个新应用(若当前是标准结构,会自动转换为 monorepo)。 | |
library | lib | 在 monorepo 中生成一个新类库(若当前是标准结构,会自动转换为 monorepo)。 |
class | cl | 生成一个新类。 |
controller | co | 生成 controller 声明。 |
decorator | d | 生成自定义装饰器。 |
filter | f | 生成 filter 声明。 |
gateway | ga | 生成 gateway 声明。 |
guard | gu | 生成 guard 声明。 |
interface | itf | 生成接口。 |
interceptor | itc | 生成 interceptor 声明。 |
middleware | mi | 生成 middleware 声明。 |
module | mo | 生成 module 声明。 |
pipe | pi | 生成 pipe 声明。 |
provider | pr | 生成 provider 声明。 |
resolver | r | 生成 resolver 声明。 |
resource | res | 生成一个新的 CRUD 资源。详见 CRUD(resource)生成器。(仅 TS) |
service | s | 生成 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/swaggerCLI 插件,则为 DTO 自动补充 OpenAPI 装饰器 - 若启用了
@nestjs/graphqlCLI 插件,则为 DTO 自动补充 GraphQL 装饰器
bash
$ nest build <name> [options]参数
| 参数 | 说明 |
|---|---|
<name> | 要构建的项目名 |
选项
| 选项 | 说明 |
|---|---|
--path [path] | tsconfig 文件路径。别名:-p |
--config [path] | nest-cli 配置文件路径。别名:-c |
--watch | 以 watch 模式运行(热重载)。若使用 tsc 编译,且 manualRestart 为 true,可输入 rs 手动重启应用。别名:-w |
--builder [name] | 指定构建器:tsc、swc 或 webpack。别名:-b |
--webpack | 使用 webpack 编译。(已废弃,建议使用 --builder webpack) |
--webpackPath | webpack 配置路径。 |
--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] | 指定构建器:tsc、swc 或 webpack。别名:-b |
--preserveWatchOutput | 在 watch 模式下保留过期控制台输出,而不是清屏。(仅 tsc watch 模式) |
--watchAssets | 以 watch 模式运行并监听非 TS 资源文件。详见工作空间中的 Assets。 |
--debug [hostport] | 以调试模式运行(会带上 --inspect)。别名:-d |
--webpack | 使用 webpack 编译。(已废弃,建议使用 --builder webpack) |
--webpackPath | webpack 配置路径。 |
--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 infobash
_ _ _ ___ _____ _____ _ _____
| \ | | | | |_ |/ ___|/ __ \| | |_ _|
| \| | ___ ___ | |_ | |\ `--. | / \/| | | |
| . ` | / _ \/ __|| __| | | `--. \| | | | | |
| |\ || __/\__ \| |_ /\__/ //\__/ /| \__/\| |_____| |_
\_| \_/ \___||___/ \__|\____/ \____/ \____/\_____/\___/
[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