@co-it/schematics v1.1.0
@co-it/schematics
This collection of commands allow you to quickly enhance the quality of your Angular project. You can activate automatic code formatting instrumenting prettier, lint commit messages using commitlint and prevent runtime errors in advance leveraging TypeScript's compiler options.
Furthermore, you can set up jest & cypress. Now, these tools are installed and configured automatically for you.
Installation & Usage
To install @co-it/schematics globally, run the following command:
npm install --global @co-it/schematicsThen you can execute a schematic in your Angular project by running the following command in your project's root folder:
You can find all available values for name in the following overview.
Overview
| Command | Description | |
|---|---|---|
ng g @co-it/schematics:commitlint | Set up commitlint and optionallyconfigure a commit hook using husky. | details |
ng g @co-it/schematics:cypress | Set up cypress using @nrwl/builders. | details |
ng g @co-it/schematics:jest | Set up jest and optionally configurea pre-push hook using husky. | details |
ng g @co-it/schematics:prettier | Set up prettier and optionally configurea commit hook using husky. | details |
ng g @co-it/schematics:tsconfig | Activate Typescript's strict compiler options. | details |
Details
➡️ @co-it/schematics:commitlint
Set up commitlint and configure a commit hook using husky.
Parameters
None.
Resulting changes in workspace
- Installs npm packages
@commitlint/cli,@commitlint/config-conventionalandhuskyas dev dependencies - Creates commitlint configuration in
commitlint.config.js - Configures husky commit-msg hook in
.huskyrc
➡️ @co-it/schematics:cypress
Set up cypress using @nrwl/builders.
Parameters
| Name | Description | Default |
|---|---|---|
app | Name of the application under test as defined in angular.json. | Default project according to angular.json. |
overwrite | Overwrite existing e2e folder? | false |
Example scenarios
- Replace existing Protractor e2e tests for default project:
ng g @co-it/schematics:cypress --overwrite=true --no-interactive - Replace existing Protractor e2e tests for project
my-app:ng g @co-it/schematics:cypress --app=my-app --overwrite=true --no-interactive
Resulting changes in workspace
- Installs npm packages
cypressand@nrwl/buildersas dev dependencies - Creates e2e app named "appname-e2e"
- Deletes existing content if
--overwriteis set to true - Creates cypress configuration and example test
- Deletes existing content if
- Adds npm scripts:
"cy:open": "cypress open""cy:run": "cypress run"
- Configures the e2e project in angular.json using @nrwl/builders
Cypress usage
After running this schematic, you can use ng e2e to run cypress tests.
Run cypress in watch mode:
ng e2e --watchRun cypress in headless mode (e.g. on a CI server):
ng e2e --headlessSee the Nrwl documentation for details about all available options.
➡️ @co-it/schematics:jest
Set up jest and optionally configure a pre-push hook using husky.
Parameters
| Name | Description | Default |
|---|---|---|
hook | Enable push hook to run all test before push. | true |
Example scenarios
- Replace existing Karma/Jasmine configuration for default project by Jest and install pre-push hook:
ng g @co-it/schematics:jest --no-interactive
Resulting changes in workspace
- Installs npm packages
jest,jest-preset-angular,@types/jestandhuskyas dev dependencies - Replaces existing karma configuration with jest configuration
- Configures husky pre-push hook in
.huskyrc - adds jest types to ts.config.spec.json
- Adds npm scripts:
"test": "jest""test:watch": "jest --watch"
➡️ @co-it/schematics:prettier
Set up prettier and optionally configure a commit hook using husky.
Parameters
| Name | Description | Default |
|---|---|---|
hook | Enable commit hook formatting & linting staged files with prettier and tslint. | true |
Example scenarios
- Install Prettier with pre-commit hook:
ng g @co-it/schematics:prettier --no-interactive
Resulting changes in workspace
- Installs npm packages
prettier,tslint-config-prettier,pretty-quick,lint-stagedandhuskyas dev dependencies - Configures prettier in
.prettierrc - Configures lint-staged in
.lintstagedrc - Updates tslint.json to be compatible with prettier configuration
- Configures husky pre-commit hook in
.huskyrc - Adds npm scripts:
"format": "prettier --write \"**/*.{js,json,css,scss,md,ts,html}\""
➡️ @co-it/schematics:tsconfig
Activate Typescript's strict compiler options.
Parameters
| Name | Description | Default |
|---|---|---|
strict | Enable typescript's strict mode | true |
noUnusedParameters | Detect unused parameters | true |
noUnusedLocals | Detect unused locals | true |
noImplicitAny | Detect usage of implicit any | true |
Example scenarios
- Enable all strict compiler options:
ng g @co-it/schematics:tsconfig --no-interactive
Resulting changes in workspace
- Configures the
compilerOptionsparameters intsconfig.json.
@co-it/schematics is internally used and maintained by co-IT.eu GmbH.
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago