当前位置: 首页 > news >正文

NestJS CLI入门

一、安装与初始化

安装 CLI

npm install -g @nestjs/cli        # 全局安装
nest --version                    # 验证安装

也可用 npx @nestjs/cli@latest 免安装直接运行。

创建新项目

nest new my-project

选项说明:

  • --package-manager yarn|pnpm|npm:指定包管理器
  • --skip-git:跳过 git 初始化
  • --strict:开启 TypeScript 严格模式
  • --dry-run:仅预览,不实际创建

二、项目结构速览

创建后默认结构如下:

my-project/
├── src/
│   ├── main.ts
│   ├── app.module.ts
│   ├── app.controller.ts
│   └── app.service.ts
├── test/
├── nest-cli.json
├── tsconfig.json
└── package.json

三、核心命令详解

1. nest new

创建新项目,已介绍。

2. nest generate(别名 g

用于生成模块、控制器、服务、实体等。

命令作用示例
nest g module user创建模块nest g mo user
nest g controller user创建控制器nest g co user
nest g service user创建服务nest g s user
nest g resource user一键生成 CRUD 模块nest g res user
nest g guard auth创建守卫nest g gu auth
nest g interceptor log创建拦截器nest g in log
nest g filter error创建异常过滤器nest g f error
nest g class dto/user创建类(如 DTO/VO)nest g cl dto/create-user

所有命令支持路径,如 nest g mo modules/user

3. nest start

启动应用,支持以下参数:

参数说明
--watch热重载开发模式
--debug启动调试模式
--exec ts-node-dev自定义执行器
--preserveWatchOutput保留控制台输出历史

4. nest build

构建用于生产的应用。

参数说明
--webpack使用 Webpack 构建
--swc使用 SWC 构建(速度更快)
--pathTsConfig指定 tsconfig.json 路径

四、配置文件详解:nest-cli.json

{"$schema": "https://json.schemastore.org/nest-cli","collection": "@nestjs/schematics","sourceRoot": "src","compilerOptions": {"builder": "swc",      // 可选:tsc/webpack/swc"typeCheck": true,"deleteOutDir": true},"monorepo": false,       // 是否启用 monorepo"projects": {}           // monorepo 子项目配置
}

五、Monorepo 模式(多项目管理)

Nest CLI 支持将多个应用和库组织在一个仓库中:

nest new workspace --directory=my-workspace --monorepo
cd my-workspace
nest generate app admin
nest generate lib shared

结构:

my-workspace/
├── apps/
│   ├── admin/
│   └── api/
├── libs/
│   └── shared/
├── nest-cli.json
└── tsconfig.json

六、调试与测试

调试

nest start --debug --watch

VS Code 中可配置 .vscode/launch.json 进行断点调试。

测试

npm run test              # 单元测试
npm run test:e2e          # 端到端测试

CLI 会自动生成 .spec.ts 文件,支持 Jest。


七、自定义生成器(Schematics)

Nest CLI 基于 Angular Schematics,可自定义模板:

npm i -D @nestjs/schematics
nest g schematic my-schematic

八、CLI 插件与扩展

  • Swagger 集成nest add @nestjs/swagger
  • GraphQL 支持nest add @nestjs/graphql
  • 配置模块nest add @nestjs/config
  • Prismanest add prisma

九、实战建议(最佳实践)

场景建议做法
模块组织每个业务模块独立目录,使用 resource
路径别名tsconfig.json 中配置 @/*: "src/*"
多环境配置使用 @nestjs/config + .env 文件
热更新 + 调试nest start --watch --debug
构建优化使用 --swc 构建器
自动生成 DTO/Entity配合 class-validator, class-transformer

十、常用命令速查表

功能命令示例
创建项目nest new app
生成模块nest g mo user
生成控制器nest g co user
生成服务nest g s user
一键生成 CRUDnest g res user
启动开发服务器nest start --watch
构建生产版本nest build --swc
添加依赖nest add @nestjs/swagger
运行测试npm run test
生成库(monorepo)nest g lib shared
http://www.lryc.cn/news/605157.html

相关文章:

  • HPCtoolkit的下载使用
  • 7.Origin2021如何绘制拟合数据图?
  • 网络安全学习第16集(cdn知识点)
  • python 中 `batch.iloc[i]` 是什么:integer location
  • 【MySQL 数据库】MySQL索引特性(一)磁盘存储定位扇区InnoDB页
  • NEG指令说明
  • Android补全计划 TextView设置文字不同字体和颜色
  • 全视通智慧护理巡视:做护理人员的AI助手
  • 关于vue __VUE_HMR_RUNTIME__ is not defined报错处理
  • plex客户端升级以后显示的内容太多了怎么办?
  • 比特币挖矿的能源消耗和环保问题
  • 【图像处理】直方图均衡化c++实现
  • 个人如何做股指期货?
  • 以ros的docker镜像为例,探讨docker镜像的使用
  • Docker常用命令速查手册:容器运维七维指南
  • 深入剖析 Spark Shuffle 机制:从原理到实战优化
  • STL:序列式容器
  • 轻松打造Unity小游戏AR体验
  • PHP语法高级篇(七):MySQL数据库
  • OSS-服务端签名Web端直传+STS获取临时凭证+POST签名v4版本开发过程中的细节
  • Spring AOP详细解析
  • [硬件电路-106]:模拟电路 - 电路为什么会出现不同的频率特性?元件频率依赖性、信号传输路径、电路拓扑结构、外部因素
  • 【maven】仓库配置
  • Matrix Theory study notes[6]
  • USRP捕获手机/路由器数据传输信号波形(上)
  • ZKMall商城开源本地部署指南
  • Apache Ignite 集群标识(Cluster ID)和集群标签(Cluster Tag)
  • 【物联网】基于树莓派的物联网开发【18】——树莓派安装Mosquitto服务
  • anaconda和Miniconda安装包32位64位皆可,anaconda和Miniconda有什么区别?
  • 2419. 按位与最大的最长子数组