Using Generators
Overview
Generators provide a way to automate many tasks you regularly perform as part of your development workflow. Whether it is scaffolding out components, features, ensuring libraries are generated and structured in a certain way, or updating your configuration files, generators help you standardize these tasks in a consistent, and predictable manner.
Generators can be written using @nrwl/devkit
or @angular-devkit
. Generators written with the @angular-devkit
are called schematics. To read more about the concepts of @angular-devkit
schematics, and building an example schematic, see the Schematics Authoring Guide.
The Workspace Generators guide shows you how to create, run, and customize workspace generators within your Nx workspace.
Types of Generators
There are three main types of generators:
- Plugin Generators are available when an Nx plugin has been installed in your workspace.
- Workspace Generators are generators that you can create for your own workspace. Workspace generators allow you to codify the processes that are unique to your own organization.
- Update Generators are invoked by Nx plugins when you update Nx to keep your config files in sync with the latest versions of third party tools.
Invoking Plugin Generators
Generators allow you to create or modify your codebase in a simple and repeatable way. Generators are invoked using the nx generate
command.
nx generate [plugin]:[generator-name] [options]
nx generate @nrwl/react:component mycmp --project=myapp
It is important to have a clean git working directory before invoking a generator so that you can easily revert changes and re-invoke the generator with different inputs.