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:

  1. Plugin Generators are available when an Nx plugin has been installed in your workspace.
  2. 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.
  3. 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.