NestJS基础-7: 官方 CLI 完整使用指南

在 NestJS 项目开发中,命令行工具是开发者最常用、最高效的生产力工具。NestJS 官方提供了一套成熟的 CLI 工具,能够帮助快速初始化项目、生成标准模板代码、统一工程结构,规避手写代码的不规范问题,极大提升后端开发效率。

一、 NestJS CLI 简介

对于 Node.js 后端开发而言,规范化和工程化是项目可维护的核心。NestJS CLI 作为官方标配工具,具备统一的项目创建标准、标准化的代码模板、简洁的命令操作三大优势,能够统一团队开发规范,避免不同开发者创建的项目结构混乱、代码风格不一的问题,是 NestJS 开发的必备基础技能。

二、NestJS CLI 安装与版本规范

1. 全局安装 CLI 工具

官方推荐全局安装 NestJS CLI,安装后可在任意目录执行 Nest 命令,无需重复配置,使用更加便捷。

安装完成后,可通过以下命令验证是否安装成功及查看版本:

复制代码
nest --version

这里需要重点注意:NestJS 不同版本存在 API 差异,版本更迭可能带来兼容性变更,因此开发中必须遵循语义化版本规则,规避版本兼容问题。

2. 语义化版本号规则

NestJS 采用标准的三段式语义化版本号,格式为 主版本号.次版本号.修订号,每一段版本更新的意义各不相同:

  • 主版本号:重大版本迭代,包含不兼容的 API 底层修改,升级后可能导致旧项目代码报错

  • 次版本号:功能性迭代,新增兼容原有项目的新功能,不会破坏现有代码逻辑

  • 修订号:修复性迭代,仅针对已知 Bug 进行修复,无功能增减、无兼容性影响

三、项目初始化与常用命令

1. 新项目初始化

快速创建标准 NestJS 项目是 CLI 最核心的功能,官方标准初始化命令如下:

复制代码
nest new 项目名称

为保证工程规范化,项目命名需严格遵循小写字母+短横线的规范,禁止使用大写字母、下划线及特殊符号。

在项目初始化过程中,终端会提示选择包管理工具,官方优先推荐 pnpm,其安装速度更快、磁盘占用更低,依赖管理更高效。项目初始化完成后,即可进入项目目录进行开发配置。

2. 高频核心命令详解

NestJS CLI 内置多个高频命令,覆盖项目创建、代码生成、帮助查询全开发场景,熟练使用可大幅减少重复编码工作:

  • new / n :项目初始化命令,简写 nest n 项目名,快速生成标准化空项目

  • generate / g:模板生成命令,可一键生成控制器、模块、服务、类等官方标准模板文件,统一代码格式

  • help:帮助查询命令,查看 CLI 所有命令的官方文档及使用方式

3. Generate 专属实用参数

generate 命令支持自定义参数,适配不同开发场景需求,两个最常用参数如下:

  • -d:测试运行模式,仅模拟文件生成操作,不会实际写入文件,适合提前预览生成效果

  • --no-spec:跳过测试文件生成,执行命令后仅生成业务代码文件,不自动创建 .spec.ts 测试文件,精简项目结构

四、拓展方案:使用 degit 快速创建模板项目

除了官方 CLI 初始化空白项目外,开发中还可借助 degit 工具 快速下载成熟模板项目,适配快速开发、项目复刻场景。

degit 的核心优势:区别于 git clone,该工具仅下载仓库最新源码,不拉取历史提交记录,下载速度更快、项目体积更小,轻量化且高效。

1. 优质模板资源渠道

可通过 Awesome Nestjs 资源合集获取各类成熟技术栈模板,涵盖 Redis、TypeORM、鉴权、日志等常用技术场景,支持关键词精准检索,满足不同项目开发需求。

2. degit 完整使用流程

  1. 全局安装 degit 工具,确保终端可直接调用;

  2. 执行下载命令:degit 仓库地址 项目目录名,拉取模板项目源码;

  3. 进入项目目录,安装项目依赖;

  4. 启动项目,查阅项目文档,熟悉对应技术栈配置与目录结构。

五、笔者注

先通过NestJS CLI 创建空白基础项目,手动搭建目录结构、编写基础接口、配置核心功能,熟悉项目底层逻辑;熟练掌握基础用法后,再结合成熟模板进行快速业务开发,循序渐进提升工程化开发能力。

同时,结合 RESTful API 规范、官方代码规范,完成 Recipe 接口等综合实操练习,可快速巩固 CLI 使用技巧与 NestJS 开发思维。

相关推荐
子兮曰3 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
sm_926787056 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
IMPYLH6 小时前
HTML 的 <video> 元素
前端·html
溪语流沙7 小时前
【每天一个CSS | Day19】流光文字与一笔写成的手写签名
前端·javascript·css
逐光者9337 小时前
STM32——SPI 屏 · Flash · 高速
java·前端·stm32
To_OC7 小时前
同样是让 AI 写全栈,为什么别人一句话就够了
前端·前端框架·next.js
CDwenhuohuo7 小时前
electron pc项目打包成桌面端
前端·javascript·electron
前端大斗师7 小时前
「大于 1000」把 1000 元那单也算进去了:我在 Vue3 订单页对了 10 句话
前端·人工智能·typescript·大模型·原力计划
Jmyd01238 小时前
用 Web VR 引擎搭建 3D 虚拟展厅:从素材上云到多端实时渲染的完整数据链路
前端·3d·vr·三维数字化
刘天远9 小时前
Agent成本核算实现:事件表、状态分布与Python归集
前端·数据库·人工智能·python