ng-essentials
Adds better defaults to a new Angular application generated with the Angular-CLI. ng-essentials is heavily inspired by the following schematics:
It includes many of the ideas of the following blog post, also written by Martin Hotell: Use React tools for better Angular apps.
Usage
This schematic uses the ng add
command to add it's value to a new Angular application:
ng add @froko/ng-essentials
The above command does the following:
- Updates all npm packages to their latest stable versions
- Installs
prettier
for advanced code formatting - Installs
husky
for format checking duringgit commit
- Adds Angular debugging support for Visual Studio Code
- Adds an
ENV_PROVIDERS
configuration array with the current environment name and a base URL to theenvironment.ts
andenvironment.prod.ts
files and provides this array in the AppModules'sproviders
array. - Removes e2e testing functionality with
protractor
. See below how to add better alternatives. Hint: Please remove thee2e
folder by yourself since I haven't found out yet how to remove whole directories with the schematics tools.
ng-essentials comes with some configuration switches to add even more value:
-
--jest
removes testing functionality withjasmine
andkarma
and replaces it with jest using @angular-builders/jest. -
--cypress
adds e2e testing functionality with Cypress.io. Please note thatng e2e
won't work anymore. Usenpm run cypress
oryarn cypress
instead. -
--testcafe
adds e2e testing functionality with Testcafe. Please note thatng e2e
won't work anymore. Usenpm run testcafe
oryarn testcafe
instead.
Adding a new library with jest support
This schematic enhances the creation of a new library when the schematic was previously installed with the --jest
option. By running
ng generate lib myAwesomeLib
it will delete the karma/jasmine configuration and add jest support for the new library as well.
Adding a new application with jest support
This schematic enhances the creation of a new application when the schematic was previously installed with the --jest
option. By running
ng generate app myAwesomeApp
it will delete the karma/jasmine configuration and add jest support for the new application as well.
Keep in mind that there is no more e2e support for protractor
. So remove the e2e
folder of the new application since it has no value anymore.