安装与环境搭建
本教程共 47 篇 · 第 2 篇 · 更新于 2026-08-09 · 约 8 分钟阅读
本节目标:搭好 NestJS 的开发环境,能创建项目、跑起来、看到 “Hello World!”。
先装 Node.js
NestJS 跑在 Node.js 上,这是前提条件。
NestJS 11 要求 Node.js 版本 >= 20。打开终端检查一下你当前的版本:
node -v
如果没装或者版本太低,推荐用 nvm 来管理 Node.js 版本。nvm 能让你在同一台机器上装多个 Node.js 版本,随时切换。
# 安装 Node.js 20
nvm install 20
nvm use 20
TipWindows 用户用 nvm-windows,macOS/Linux 用户用 nvm。两者命令略有不同,但都能达到同样的效果。
装好之后,确认 npm 也跟着装好了:
npm -v
npm 是 Node.js 自带的包管理器,不需要单独安装。如果你更喜欢 pnpm 或 yarn,也完全可以,后面创建项目时可以选择。
安装 Nest CLI
Nest CLI 是官方脚手架工具,能帮你快速创建项目、生成代码文件。
# 三种包管理器任选一种
npm install -g @nestjs/cli
# 或
yarn global add @nestjs/cli
# 或
pnpm add -g @nestjs/cli
装完之后验证一下:
nest --version
能看到版本号就说明装好了。
Note如果全局安装遇到权限问题(macOS/Linux),不要用
sudo npm install -g,建议改用 nvm 来管理 Node.js,nvm 安装的 Node.js 不需要 sudo 权限。
创建第一个项目
一切就绪,来创建项目:
nest new my-first-nest-app
CLI 会问你选哪个包管理器:
? Which package manager would you like to use?
❯ npm
yarn
pnpm
用方向键选择,回车确认。然后等它安装依赖,大概几十秒。
安装完成后,目录结构长这样:
my-first-nest-app/
├── src/
│ ├── app.controller.ts
│ ├── app.controller.spec.ts
│ ├── app.module.ts
│ ├── app.service.ts
│ └── main.ts
├── test/
├── package.json
├── tsconfig.json
├── nest-cli.json
└── ...
这些文件各有各的用处,下一章会详细讲。现在你只需要知道:
| 文件 | 作用 |
|---|---|
main.ts | 应用入口,启动 HTTP 服务 |
app.module.ts | 根模块,应用的”总装配图” |
app.controller.ts | 控制器,处理 HTTP 请求 |
app.service.ts | 服务,处理业务逻辑 |
app.controller.spec.ts | 控制器的单元测试 |
把项目跑起来
进入项目目录,启动开发服务器:
cd my-first-nest-app
npm run start:dev
start:dev 是开发模式,带热重载——你改了代码保存后,服务会自动重启。
打开浏览器,访问 http://localhost:3000,你会看到:
Hello World!
恭喜,你的第一个 NestJS 应用跑起来了。
Tip开发时推荐一直用
npm run start:dev,改完代码自动刷新,不用手动重启。
常用脚本速查
package.json 里预定义了一堆脚本,日常开发最常用的就这几个:
{
"scripts": {
"build": "nest build",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:e2e": "jest --config ./test/jest-e2e.json"
}
}
| 命令 | 什么时候用 |
|---|---|
npm run start:dev | 日常开发,改代码自动重启 |
npm run build | 打包成生产代码 |
npm run start:prod | 跑生产版本 |
npm run test | 跑单元测试 |
npm run lint | 检查代码规范 |
Note
npm run start:dev底层用的是nest start --watch,效果一样。你也可以直接写nest start --watch。
Nest CLI 常用命令
除了创建项目,CLI 还有很多实用命令。后面写代码时会频繁用到 nest generate:
# 生成一个模块
nest generate module users
# 生成一个控制器
nest generate controller users
# 生成一个服务
nest generate service users
这些命令都有简写:
nest g mo users # 等同于 generate module users
nest g co users # 等同于 generate controller users
nest g s users # 等同于 generate service users
Tip刚开始记不住简写没关系,用完整命令就行。写多了自然就记住了。
VS Code 配置建议
NestJS 项目用 VS Code 开发体验最好。推荐装几个扩展:
| 扩展 | 用途 |
|---|---|
| ESLint | 代码规范检查 |
| Prettier - Code formatter | 代码格式化 |
| NestJS Files | 快速创建 NestJS 文件 |
再配一下 settings.json,让保存时自动格式化:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"typescript.tsdk": "node_modules/typescript/lib"
}
这个配置放在项目根目录的 .vscode/settings.json 里。CLI 创建的项目已经帮你配好了一部分,你可以按需调整。
常见问题
端口 3000 被占用了怎么办?
换个端口就行。打开 src/main.ts,把端口改成别的:
await app.listen(3001);
或者用环境变量:
await app.listen(process.env.PORT ?? 3000);
npm install 很慢怎么办?
换个镜像源:
npm config set registry https://registry.npmmirror.com
装完之后再跑 npm install 就快了。
TypeScript 报错”找不到模块”怎么办?
大概率是依赖没装全。删掉 node_modules 和 package-lock.json,重新装一次:
rm -rf node_modules package-lock.json
npm install
小结
环境搭好了,项目也能跑了。整个过程其实就三步:装 Node.js、装 Nest CLI、nest new 创建项目。
接下来会拆解项目的文件结构,搞清楚每个文件是干嘛的。