我正在参加「掘金·启航计划」
关于 Nest Cli
Nest CLI 是一个命令行工具,用于快速创建和管理 Nest.js 应用程序。它提供了一组命令,可以帮助开发人员快速生成模块、控制器、服务等代码文件,并且可以自动安装所需的依赖项。
Nest CLI 的主要功能包括:
- 创建新的 Nest.js 应用程序
- 生成模块、控制器、服务等代码文件
- 自动安装所需的依赖项
- 支持 TypeScript 和 JavaScript
- 支持单元测试和端到端测试
- 支持 linting 和格式化代码
使用 Nest CLI 可以大大提高开发效率,让开发人员更专注于业务逻辑的实现,而不是手动创建和管理代码文件。同时,Nest CLI 还提供了一些可定制的选项,可以根据项目需求进行配置。
nest-cli.json
在 Nest 项目中,nest-cli.json 是一个用于配置 Nest CLI 的工具文件。该文件允许您自定义 Nest CLI 的行为和设置。
{
"collection": "@nestjs/schematics",
"sourceRoot": "apps/my-project/src",
"monorepo": true,
"root": "apps/my-project",
"compilerOptions": {
"webpack": true,
"tsConfigPath": "apps/my-project/tsconfig.app.json"
},
"projects": {
"my-project": {
"type": "application",
"root": "apps/my-project",
"entryFile": "main",
"sourceRoot": "apps/my-project/src",
"compilerOptions": {
"tsConfigPath": "apps/my-project/tsconfig.app.json"
}
},
"my-app": {
"type": "application",
"root": "apps/my-app",
"entryFile": "main",
"sourceRoot": "apps/my-app/src",
"compilerOptions": {
"tsConfigPath": "apps/my-app/tsconfig.app.json"
}
}
}
}
该文件分为以下几个部分:
-
具有顶级属性的全局部分,用于控制标准和单存储库范围的设置
-
包含有关每个项目的元数据的顶级属性(”projects”)。本部分仅适用于单存储库模式结构。
顶级属性如下所示:
-
“collection”:指向用于生成元件的原理图集合;通常不应更改此值
-
“sourceRoot”:指向标准模式结构中单个项目的源代码根,或 monorepo 模式结构中默认项目的源代码根
-
“compilerOptions”编译器选项”:带有指定编译器选项的键和指定选项设置的值的映射;请参阅下面的详细信息
-
“generateOptions”生成选项”:一个映射,其中键指定全局生成选项和值指定选项设置;请参阅下面的详细信息
-
“monorepo”:(仅限 monorepo)对于 monorepo 模式结构,此值始终为 true
-
“root”:(仅限 monorepo)指向默认项目的项目根目录
?DOC链接:docs.nestjs.com/cli/monorep…
项目文件介绍
src
├── app.controller.spec.ts
├── app.controller.ts
├── app.module.ts
├── app.service.ts
└── main.ts
创建模块流程
生成CURD 模块
可以使用 Nest-cli 提供的指令来快速生成,并且它可以帮你自动注入到相应的模块当中。
- 生成一个模块 (nest g mo) 来组织代码,使其保持清晰的界限(Module)。
- 生成一个控制器 (nest g co) 来定义 CRUD 路径(Controller)。
- 生成一个服务 (nest g s) 来表示/隔离业务逻辑(Service)。
- 生成一个实体类/接口来代表资源数据类型(Entity)。
nest g co book //创建一个 book 控制器
nest g s book //创建一个 book server 服务
nest g mo book //创建一个 book 模块
nest g gu book //创建一个 book 守卫
nest g in book //创建一个 book 拦截器
nest g f book //创建一个book 过滤器
nest 还提供了一个指令,可以快速生成上面文件
nest g resource book
并且所有用过指令创建的文件都会自动注入到 全局模块当中,供其它模块使用
后续持续更新Nest 专栏~ !