Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
angular-eslint
✓ import angular-eslint from 'angular-eslint'
✗ const angular-eslint = require('angular-eslint')
Default import for flat config; CJS require not supported in ESM-first packages.
processComponents
✓ import { processComponents } from '@angular-eslint/utils'
✗ import { processComponents } from 'angular-eslint'
Utility functions are re-exported from @angular-eslint/utils, not the main package.
ESLint config from '@angular-eslint/eslint-plugin'
✓ import plugin from '@angular-eslint/eslint-plugin'
✗ import { rules } from '@angular-eslint/eslint-plugin'
The plugin package exports a default ESLint plugin config object; named rules export exists but is less common.
Shows setup of angular-eslint with flat config including TypeScript and template rules.
// angular.json
{
"projects": {
"my-app": {
"architect": {
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
}
}
}
}
}
// eslint.config.js (flat config)
import angular from 'angular-eslint';
import tseslint from 'typescript-eslint';
export default tseslint.config(
{
files: ['**/*.ts'],
extends: [
...tseslint.configs.recommended,
...angular.configs.tsRecommended,
],
processor: angular.processInlineTemplates,
rules: {
'@angular-eslint/directive-selector': [
'error',
{ type: 'attribute', prefix: 'app', style: 'camelCase' },
],
'@angular-eslint/component-selector': [
'error',
{ type: 'element', prefix: 'app', style: 'kebab-case' },
],
},
},
{
files: ['**/*.html'],
extends: [
...angular.configs.templateRecommended,
...angular.configs.templateAccessibility,
],
rules: {},
}
);
Debug
Known issues
breakingv21.0.0 requires Angular 21 and dropped support for Angular < 21.fixUpgrade to Angular 21 and use ng update @angular/core @angular/cli angular-eslint.
affects: <21.0.0
breakingv20.0.0 migrated from TSLint to ESLint; TSLint configs are no longer supported.fixRun ng update angular-eslint to automatically migrate to ESLint.
affects: <20.0.0
deprecatedThe @angular-eslint/schematics package has been deprecated in favor of ng add @angular-eslint/schematics (now integrated into CLI).fixUse ng add @angular-eslint/schematics instead of manually installing.
affects: >=18.0.0 <21.0.0
gotchaFlat config (eslint.config.js) is the default since v19; legacy .eslintrc is not supported in v21+.fixConvert .eslintrc to flat config using the built-in schematic or manually.
affects: >=19.0.0
gotchaThe angular-eslint package re-exports from sub-packages; importing directly from '@angular-eslint/eslint-plugin' may cause version conflicts.fixAlways import from 'angular-eslint' for consistent version resolution.
affects: >=20.0.0
deprecatedThe processor 'angular.processInlineTemplates' is deprecated; use 'angular.processInlineTemplate' instead.fixReplace processInlineTemplates with processInlineTemplate.
affects: >=20.0.0 <21.0.0
gotchaESLint v10 support was added in v21.3.0; using ESLint v10 with older angular-eslint versions will fail.fixUpgrade to angular-eslint v21.3.0+ if using ESLint v10.
affects: <21.3.0
Errors
Common errors & fixes
Cannot find module '@angular-eslint/eslint-plugin'
Missing peer dependency or incorrect installation order.
fixRun `ng add @angular-eslint/schematics` to install all required packages.
Configuration for rule '@angular-eslint/component-selector' is invalid
Rule options changed in v21; previously accepted wrong format.
fixUpdate rule config to match new schema: { type: 'element', prefix: 'app', style: 'kebab-case' }. Failed to load ESLint config: 'angular-eslint' is not a valid configuration
Using flat config syntax incorrectly or missing import.
fixEnsure you import angular from 'angular-eslint' and use `...angular.configs.tsRecommended`.
Audit
Dependencies
eslintrequiredCore linting engine peer dependency
typescript-eslintrequiredRequired for TypeScript linting support (v8+)
@angular/clioptionalRequired for schematic and builder integration