What is @ngrx/schematics?
@ngrx/schematics is a collection of Angular schematics for generating NgRx files such as actions, reducers, effects, and more. It helps streamline the process of setting up and maintaining NgRx in Angular applications.
What are @ngrx/schematics's main functionalities?
Generate Store
This command generates a new NgRx store with the specified state and sets it up in the root module. It creates necessary files and boilerplate code for the store.
ng generate @ngrx/schematics:store State --root --module app.module.ts
Generate Actions
This command generates a new set of actions for a specified feature (e.g., User). It creates an actions file with predefined action types and classes.
ng generate @ngrx/schematics:action User
Generate Reducer
This command generates a new reducer for a specified feature (e.g., User). It creates a reducer file with initial state, reducer function, and necessary imports.
ng generate @ngrx/schematics:reducer User
Generate Effects
This command generates a new effect for a specified feature (e.g., User). It creates an effects file with boilerplate code for handling side effects in NgRx.
ng generate @ngrx/schematics:effect User
Other packages similar to @ngrx/schematics
@angular/cli
@angular/cli is the official Angular CLI tool that provides a wide range of commands for generating and managing Angular projects. While it does not specifically focus on NgRx, it can be extended with custom schematics to include NgRx-related functionality.
nx
Nx is a set of extensible dev tools for monorepos, which helps you develop like Google, Facebook, and Microsoft. It provides powerful CLI commands for generating and managing Angular applications, including support for NgRx. Nx offers more advanced features for managing large-scale projects compared to @ngrx/schematics.
schematics-utilities
schematics-utilities is a utility library for Angular schematics that provides helper functions for creating and modifying Angular projects. It can be used to create custom schematics, including those for NgRx, but requires more manual setup compared to @ngrx/schematics.
6.0.0-beta.2 (2018-05-11)
Bug Fixes
- build: Fix UMD global names (#1005) (413efd4), closes #1004
- RouterStore: Reset dispatch-tracking booleans after navigation end (#968) (48305aa)
- Schematics: Add check for app/lib to project helper function (5942885)
- Schematics: Add smart default to blueprint schemas (cdd247e)
- Schematics: Remove aliases for state and stateInterface options (f4520a2)
- Schematics: Update upsert actions for entity blueprint (#1042) (0d1d309), closes #1039
- Schematics: Upgrade schematics to new CLI structure (b99d9ff)
- Store: Fix type annotations for select methods (#953) (4d74bd2)
- StoreDevtools: Refresh devtools when extension is started (#1017) (c6e33d9), closes #508
- Update minimum node version to 8.9.0 (#989) (0baaad8)
Features
BREAKING CHANGES
- Schematics: The action blueprint has been updated to be less generic, with associated reducer and effects updated for the feature blueprint
BEFORE:
export enum UserActionTypes {
UserAction = '[User] Action'
}
export class User implements Action {
readonly type = UserActionTypes.UserAction;
}
export type UserActions = User;
AFTER:
export enum UserActionTypes {
LoadUsers = '[User] Load Users'
}
export class LoadUsers implements Action {
readonly type = UserActionTypes.LoadUsers;
}
export type UserActions = LoadUsers;
- Schematics: Aliases for
state
and stateInterface
were removed due to conflicts with component aliases without reasonable alternatives. - Schematics: Minimum dependency for @ngrx/schematics has changed:
@angular-devkit/core: ^0.5.0
@angular-devkit/schematics: ^0.5.0
<a name="6.0.0-beta.1"></a>