What is @nestjs/schematics?
The @nestjs/schematics package is a collection of schematics for NestJS, a framework for building efficient, reliable and scalable server-side applications. This package provides a set of tools to generate various parts of a NestJS application, such as modules, controllers, services, and more, following best practices and reducing the amount of boilerplate code that developers need to write.
What are @nestjs/schematics's main functionalities?
Generate a new application
This command sets up a new NestJS project with all the necessary configuration and dependencies.
nest new project-name
Generate a module
This command creates a new module in the NestJS application with the name 'users'.
nest generate module users
Generate a controller
This command generates a new controller with the name 'users' within the NestJS application, which can handle incoming HTTP requests.
nest generate controller users
Generate a service
This command creates a new service with the name 'users', which can contain business logic and can be injected into controllers or other services.
nest generate service users
Generate a guard
This command generates a new guard named 'auth', which can be used to implement authentication and authorization logic in the application.
nest generate guard auth
Generate a filter
This command creates a new exception filter named 'common', which can be used to handle exceptions in a consistent way across the application.
nest generate filter common
Generate an interceptor
This command generates a new interceptor named 'logging', which can be used to intercept incoming requests or outgoing responses for tasks like logging or transforming data.
nest generate interceptor logging
Generate a pipe
This command creates a new pipe named 'validation', which can be used to perform validation and data transformation on the request objects.
nest generate pipe validation
Generate a middleware
This command generates a new middleware named 'logger', which can be used to execute code before the route handler is called, such as logging request details.
nest generate middleware logger
Other packages similar to @nestjs/schematics
@angular/cli
Similar to @nestjs/schematics, the @angular/cli package is used for generating and scaffolding Angular applications. It provides a wide range of schematics for components, services, modules, and more. While @nestjs/schematics is focused on server-side applications with NestJS, @angular/cli is tailored for client-side Angular applications.
create-react-app
Create-react-app is a scaffolding tool for React applications. It sets up a new React project with sensible defaults. Unlike @nestjs/schematics, which provides fine-grained generation of individual elements, create-react-app is more about initializing a new project structure.
yeoman-generator
Yeoman is a generic scaffolding system that allows the creation of any kind of app. It has a variety of generators for different frameworks and libraries. While @nestjs/schematics is specific to NestJS, Yeoman is more versatile and can be extended with custom generators for different purposes.
slush
Slush is a scaffolding tool similar to Yeoman but built on top of Gulp.js. It allows developers to create their own scaffolding tools using Gulp tasks. Slush is more general-purpose compared to @nestjs/schematics, which is specialized for NestJS applications.
A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
Description
In order to help people manage their projects, the CLI tool has been created. It helps on many grounds at once, from scaffolding the project to build well-structured applications. The Nest CLI is based on the @angular-devkit package. Also, there're special schematics that are dedicated to the Nest development @nestjs/schematics.
Installation
NPM:
$ npm install -g @nestjs/schematics
Docker:
$ docker pull nestjs/cli[:version]
$ docker run -it -rm -p 3000:3000 -v $(pwd)/workspace nestjs/schematics[:version]
GIT:
$ git clone https://github.com/nestjs/schematics.git <project>
$ cd <project>
With your Node runtime:
$ npm install
$ npm link
With Docker:
$ docker build -t nestjs/schematics .
Usage
Learn more in the official documentation.
Stay in touch