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 开发思维。

相关推荐
linux_cfan31 分钟前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen1 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
郑州光合科技余经理2 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
IT_陈寒2 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
Blanche15002 小时前
利用 RAG 为答疑机器人扩展知识范围
前端
天若有情6733 小时前
【纯前端小工具】公历生日转农历,批量查询每年农历生日对应的公历日期(GitHub Pages在线直接用)
前端·javascript·github pages·农历转换·lunisolar·网页小工具
SoonITer3 小时前
怎样构建一个 Agent-friendly 的网站
前端·agent
颜进强3 小时前
01 · NestJS 是什么:用途、解决什么问题、与热门框架对比
前端·后端·ai编程
wendZzoo3 小时前
前端工程师的 3D 第一课:一个模型如何进入网页
前端
颜进强3 小时前
04 · NestJS 依赖注入:你在 `@Module` 写的 providers,和构造参数里那个类型,是怎么"对上"的?
前端·后端·ai编程