name: nestjs-project-create domain: nestjs description: "提供NestJS项目创建支持,使用官方CLI脚手架方式。"
NestJS 项目创建
快速创建方式
项目名称命名规范
必须遵循严格的命名要求:项目名称只能包含小写字母和短横线(kebab-case),例如 my-nestjs-project、nest-api。不允许使用大写字母、下划线、空格或其他特殊字符。
方式一:使用官方 CLI(推荐)
使用 NestJS 官方 CLI 创建项目:
# 全局安装 NestJS CLI
npm install -g @nestjs/cli
# 创建新项目
nest new my-nestjs-project
# 在当前目录创建项目(需确保目录为空)
nest new . --skip-git
选项说明:
--skip-git- 跳过 git 仓库初始化--package-manager <npm|yarn|pnpm>- 指定包管理器--directory <dir>- 指定创建目录
方式二:使用 npx(无需全局安装)
# 使用 npx 创建项目
npx @nestjs/cli new my-nestjs-project
# 使用 pnpm
pnpm create nest@latest my-nestjs-project
创建示例
示例1:快速创建 NestJS 项目
# 创建项目
nest new my-app
# 进入项目目录
cd my-app
# 安装依赖(自动完成)
# 启动开发服务器
npm run start:dev
# 构建生产版本
npm run build
# 启动生产服务器
npm run start:prod
示例2:创建带数据库支持的项目
# 创建项目
nest new my-api
cd my-api
# 安装 TypeORM 和 PostgreSQL 支持
npm install @nestjs/typeorm typeorm pg
# 安装配置文件支持
npm install @nestjs/config
# 安装验证支持
npm install class-validator class-transformer
示例3:使用 Docker 支持
# 创建项目
nest new my-service
cd my-service
# 安装 Docker Compose 配置(手动创建 docker-compose.yml)
项目结构说明
创建后的标准 NestJS 项目结构:
my-nestjs-project/
├── src/
│ ├── app.controller.ts # 根控制器
│ ├── app.controller.spec.ts # 控制器测试
│ ├── app.module.ts # 根模块
│ ├── app.service.ts # 根服务
│ └── main.ts # 入口文件
├── test/ # 测试目录
│ ├── app.e2e-spec.ts # E2E 测试
│ └── jest-e2e.json # E2E 测试配置
├── .gitignore # Git 忽略配置
├── nest-cli.json # Nest CLI 配置
├── package.json # 项目依赖
├── tsconfig.json # TypeScript 配置
├── tsconfig.build.json # TypeScript 构建配置
└── README.md # 项目说明
开发命令
项目创建完成后,可使用以下命令:
# 启动开发服务器(热重载)
npm run start:dev
# 启动生产服务器
npm run start:prod
# 构建生产版本
npm run build
# 运行单元测试
npm run test
# 运行 E2E 测试
npm run test:e2e
# 查看测试覆盖率
npm run test:cov
# 生成模块
nest generate module users
# 生成控制器
nest generate controller users
# 生成服务
nest generate service users
# 生成 CRUD 资源
nest generate resource users
常用模块安装
| 模块 | 安装命令 | 说明 |
|---|---|---|
| TypeORM | npm install @nestjs/typeorm typeorm pg |
数据库 ORM |
| Prisma | npm install @nestjs/prisma prisma |
Prisma ORM |
| Config | npm install @nestjs/config |
环境配置 |
| Validation | npm install class-validator class-transformer |
数据验证 |
| JWT | npm install @nestjs/jwt passport-jwt |
JWT 认证 |
| GraphQL | npm install @nestjs/graphql @nestjs/apollo graphql apollo-server-express |
GraphQL 支持 |
| WebSocket | npm install @nestjs/websockets @nestjs/platform-socket.io |
WebSocket 支持 |
| Schedule | npm install @nestjs/schedule node-schedule |
定时任务 |
Windows 环境注意事项
- PowerShell 命令分隔符:使用
;而不是&& - Node.js 版本:建议使用
>=18.0.0版本 - 全局 CLI 安装:如果全局安装失败,可使用
npx方式 - 权限问题:可能需要以管理员身份运行 PowerShell
IDE 推荐
推荐使用 Visual Studio Code 进行开发,配合以下扩展:
- NestJS Snippets - NestJS 代码片段
- TypeScript - TypeScript 支持
- ESLint - 代码检查
- Prettier - 代码格式化