
这一篇使用 NestJS CLI 初始化项目详解项目目录结构、核心配置、运行脚本跑通第一个经典的 Hello World建立对 NestJS 项目的整体认知。一、项目初始化与整体目录概述通过NestJS CLI快速初始化空白项目初始化完成后使用 VS Code 打开工程目录即可开始开发。NestJS 官方预设了标准化的项目目录结构同时内置了代码规范、格式化、测试等工具开箱即用。项目核心目录及工具整体分工清晰核心结构如下src 目录项目核心源代码存放目录所有业务代码均在此编写node_modules 目录存放项目所有第三方依赖包自动安装生成test 目录项目测试文件目录用于编写单元测试、端到端E2E测试同时NestJS 初始化项目默认集成两套开发必备工具Jest 测试框架无需额外配置支持自动化测试满足后端项目测试规范要求ESLint Prettier代码规范检查与代码格式化工具配合 VS Code 对应插件可实现代码自动校验、统一代码风格规避不规范代码二、核心文件与配置详解NestJS 项目的配置文件各司其职理解核心文件的作用是掌握 NestJS 开发的基础。1. 项目运行核心nest-cli.jsonNestJS 脚手架核心配置文件用于配置项目编译、构建、CLI 命令相关规则是项目的核心框架配置package.jsonNode.js 项目标配配置文件记录项目名称、版本、所有依赖包、自定义运行脚本命令是项目依赖管理和脚本执行的核心2. TypeScript 配置文件tsconfig.json全局 TypeScript 基础配置定义项目 TS 编译规则、语法兼容、路径别名等基础配置tsconfig.build.json专属构建配置文件仅在项目打包、编译上线时生效区别于开发环境的 TS 配置优化生产构建效率3. 开源许可证配置正规开源/商用项目都需要配置开源许可证NestJS 项目默认可自定义证书协议主流两种协议区别如下MIT 协议最灵活、使用最广泛的协议允许项目商业化使用无强制开源约束适合绝大多数企业级项目GPL 协议具备“传染性”使用该协议的项目衍生项目必须强制开源Linux 系统即采用此协议商用项目慎用VS Code 可通过插件快速配置证书Choose a License快速生成项目根目录 LICENSE 文件一键选择 MIT、GPL 等主流协议Licenser支持单个/批量文件头部插入许可证信息通过命令面板执行Insert License Header命令即可添加可在 VS Code 用户配置中预设作者、许可证信息实现工作区所有文件批量添加证书头部三、项目运行脚本与启动方式NestJS 在package.json中预设了三套核心运行脚本适配开发、调试、生产三种场景日常开发高频使用。运行脚本运行场景核心特性pnpm start:dev开发环境支持文件热更新修改代码无需重启项目开发效率最高pnpm start生产环境打包编译后启动性能优化用于项目上线部署pnpm start:debug调试环境开启调试模式支持断点调试适配问题排查启动 Hello World 项目执行开发环境启动命令pnpm start:dev项目默认在3000 端口启动。端口配置核心入口为项目根文件main.ts文件中app.listen(3000)方法定义了项目监听端口可根据需求自定义修改。项目启动成功后浏览器访问localhost:3000即可看到默认响应内容Hello World至此第一个 NestJS 应用运行成功四、src 核心目录结构深度解析src 是项目的核心业务目录默认生成三个核心文件也是 NestJS 模块化架构的基础组成部分理解这三个文件的分工就能掌握 NestJS 最核心的开发思想。app.controller.ts控制器负责接收客户端请求、定义路由、返回响应结果是请求的入口层所有路由接口都在此定义app.service.ts服务层负责编写核心业务逻辑、数据处理、数据库交互控制器只负责请求转发不处理业务逻辑实现路由与业务解耦app.module.ts根模块项目根模块是整个应用的结构组织者统一管理控制器、服务、依赖注入等资源五、NestJS 核心设计思想模块化架构NestJS 框架规定项目所有功能、所有业务逻辑都必须通过模块进行组织和管理。这种架构模式解决项目代码混乱、耦合度高、难以维护的问题让代码结构分层清晰、职责单一极大提升了项目的可维护性、可扩展性完美适配中大型后端项目、团队协作开发以及微服务架构。