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 Hochel: 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 - Improves TsLint rules, especially import statement ordering with different blocks
- Adds Angular debugging support for Visual Studio Code
- Adds formatting and linting support for saved files in Visual Studio Code
- Adds common Visual Studio Code plugin recommendations
- 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 a better alternative. - Formats the code with
prettier
after the installation - Lints the code and fixes issues after the installation
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. -
--husky
installs husky which formats and lints staged files (pre-commit hook).
This schematic also works with an empty Angular workspace, created with ng new app-name --createApplication=false
.
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.