A unified Angular CLI builder for linting Angular projects with ESLint and Stylelint in a single step.
- < 2.0.0: Supports Angular v9 – v16 and Stylelint ≤ 15
- >= 2.0.0: Supports Angular v17 – v20 and Stylelint 16+
- Lint both TypeScript and stylesheets in one command
- Supports ESLint and Stylelint configuration and ignore patterns
- Output to file or console, with multiple formatter options
- Caching for faster linting
- Fine-grained control over warnings, errors, and exit codes
- Angular CLI project (v9+)
- ESLint and Stylelint installed and configured (e.g.,
eslint.config.js
for flat config, or.eslintrc
for legacy config, andstylelint.config.js
for Stylelint)
npm install --save-dev @krema/angular-eslint-stylelint-builder
-
Update your
angular.json
Replace the default lint builder with this one:
"lint": { "builder": "@krema/angular-eslint-stylelint-builder:lint", "options": { "eslintFilePatterns": ["**/*.ts"], "stylelintFilePatterns": ["**/*.scss"] } }
-
Run linting
ng lint
Name | Default | Description | Required | Linter |
---|---|---|---|---|
Basic configuration: | ||||
eslintFilePatterns |
[] |
Files/globs for ESLint | Yes | eslint |
eslintConfig |
Path to ESLint config (supports both flat config eslint.config.js and legacy .eslintrc.* ) |
No | eslint | |
stylelintFilePatterns |
[] |
Files/globs for Stylelint | Yes | stylelint |
stylelintConfig |
Path to Stylelint config (stylelint.config.js or legacy .stylelintrc.* ) |
No | stylelint | |
noEslintrc |
false |
Disable .eslintrc.* and package.json config |
No | eslint |
fix |
false |
Auto-fix fixable issues | No | both |
Cache-related: | ||||
eslintCache |
false |
Enable ESLint cache | No | eslint |
stylelintCache |
false |
Enable Stylelint cache | No | stylelint |
eslintCacheLocation |
.eslintcache |
ESLint cache file/directory | No | eslint |
stylelintCacheLocation |
.stylelintcache |
Stylelint cache file/directory | No | stylelint |
eslintCacheStrategy |
metadata |
ESLint cache strategy (metadata or content ) |
No | eslint |
File Enumeration: | ||||
eslintIgnorePatterns |
[] |
Glob patterns to ignore (ESLint 9+) | No | eslint |
stylelintIgnorePatterns |
[] |
Glob patterns to ignore (Stylelint 16+) | No | stylelint |
Output: | ||||
outputFile |
Write report to file instead of console | No | both | |
format |
stylish |
Output formatter (see ESLint formatters) | No | both |
silent |
false |
Hide output text | No | both |
Handling warnings: | ||||
quiet |
false |
Only show errors (ignore warnings) | No | both |
maxWarnings |
-1 |
Max warnings before nonzero exit code | No | both |
force |
false |
Succeed even if there are lint errors | No | both |
"lint": {
"builder": "@krema/angular-eslint-stylelint-builder:lint",
"options": {
"eslintFilePatterns": ["src/**/*.ts"],
"stylelintFilePatterns": ["src/**/*.scss"],
"fix": true
}
}
MIT