nx/README.md
2017-09-01 11:00:31 -04:00

1.9 KiB

Nrwl Extensions for Angular

NX (Nrwl Extensions) is a set of libraries and schematics for the Angular framework.

Installing

Add the following dependencies to your project's package.json and run npm install:

{
  dependencies: {
    "@ngrx/store": "4.0.2",
    "@ngrx/effects": "4.0.2",
    "@nrwl/nx": "https://github.com/nrwl/nx-build",
    "@angular-devkit/schematics": "0.0.17" 
  }
}

Schematics

addNgRxToModule

Root

Run schematics @nrwl/nx:addNgRxToModule --module=src/app/app.module.ts --root, and you will see the following files created:

/src/app/+state/app.actions.ts
/src/app/+state/app.effects.ts
/src/app/+state/app.effects.spec.ts
/src/app/+state/app.init.ts
/src/app/+state/app.interfaces.ts
/src/app/+state/app.reducer.ts
/src/app/+state/app.reducer.spec.ts

Also, app.module.ts will have StoreModule.forRoot and EffectsModule.forRoot configured.

EmptyRoot

Run schematics @nrwl/nx:addNgRxToModule --module=src/app/app.module.ts --emptyRoot to only add the StoreModule.forRoot and EffectsModule.forRoot calls.

Feature

Run schematics @nrwl/nx:addNgRxToModule --module=src/app/mymodule/mymodule.module.ts , and you will see the following files created:

/src/app/mymodule/+state/app.actions.ts
/src/app/mymodule/+state/app.effects.ts
/src/app/mymodule/+state/app.effects.spec.ts
/src/app/mymodule/+state/app.init.ts
/src/app/mymodule/+state/app.interfaces.ts
/src/app/mymodule/+state/app.reducer.ts
/src/app/mymodule/+state/app.reducer.spec.ts

Also, mymodule.module.ts will have StoreModule.forFeature and EffectsModule.forFeature configured.

skipImport

Add --skipImport to generate files without adding imports to the module.

Testing

Nrwl Extensions come with utilities to simplify testing Angular applications. See app.effects.spec.ts. Read https://github.com/vsavkin/testing_ngrx_effects for more information.