ID: I202512171432
Status: idea
Tags: NestJS, CLI
NestJS CLI
NestJS has a CLI for generating code. Here’s a comprehensive reference of all available commands.
Root
The generated code will be placed in your repo based on the
"sourceRoot": "src"in your nest-cli.json
Core Generation Commands
Syntax:
nest generate <schematic> <name>
nest g <schematic> <name>Project Structure
Generate Module:
nest g mo <name>
nest generate module <name>Generate Controller:
nest g co <name>
nest generate controller <name>Generate Service:
nest g s <name>
nest generate service <name>Generate Resource (Complete CRUD):
nest g res <name>
nest generate resource <name>Generates: module + controller + service + entity + DTOs + tests
Core NestJS Building Blocks
Generate Class:
nest g cl <name>
nest generate class <name>Generate Interface:
nest g itf <name>
nest generate interface <name>Generate Provider:
nest g pr <name>
nest generate provider <name>Middleware & Pipes
Generate Filter:
nest g f <name>
nest generate filter <name>Generate Guard:
nest g gu <name>
nest generate guard <name>Generate Pipe:
nest g pi <name>
nest generate pipe <name>Generate Interceptor:
nest g itc <name>
nest generate interceptor <name>Generate Middleware:
nest g mi <name>
nest generate middleware <name>Advanced Features
Generate Decorator:
nest g d <name>
nest generate decorator <name>Generate Gateway (WebSocket):
nest g ga <name>
nest generate gateway <name>Generate Resolver (GraphQL):
nest g r <name>
nest generate resolver <name>Monorepo Features
Generate Application (in monorepo):
nest g app <name>Generate Library (in monorepo):
nest g lib <name>
nest generate library <name>Common Options
Add these flags to any generation command:
# Skip test file generation
nest g s users --no-spec
# Skip folder creation (flat structure)
nest g mo users --flat
# For specific project (monorepo)
nest g s users --project my-project
# Dry run (see what would be generated)
nest g co users --dry-runProject-Level Commands
Create New Project:
nest new <project-name>
nest n <project-name>Build Project:
nest build
nest bStart Project:
nest start
nest start --watchDisplay Project Info:
nest infoReal-World Examples
Complete feature generation with nesting:
nest g mo features/users
nest g co features/users
nest g s features/users
nest g cl features/users/dto/create-user.dtoGenerate GraphQL resource:
nest g res users
# Select: GraphQL (code first) or GraphQL (schema first)
# Select: Yes for CRUD entry pointsGenerate WebSocket gateway:
nest g ga eventsGuard + Interceptor for authentication:
nest g gu auth/jwt
nest g itc auth/loggingTips
- The CLI automatically updates module imports when generating controllers/services
- Use
nest generate resourcefor interactive CRUD setup with prompts - Combine
--flatwith nested paths:nest g mo features/users --flat - All schematics support
--no-specto skip test generation - Use
--dry-runto preview changes before committing them - For monorepos, use
--projectto specify the target project
References
I kept forgetting NestJS CLI commands whilst working on Avans 2-1 LU3