A monorepo providing tooling to lint Angular projects with ESLint, including TypeScript and HTML template rules.
Angular ESLint is a monorepo of tools that enables developers to use ESLint for linting Angular projects. It provides parsers, plugins, and integrations to lint both TypeScript source code and Angular HTML templates, replacing the deprecated TSLint and Codelyzer tooling. The project ensures code quality and consistency by leveraging the ESLint ecosystem within Angular's specific context.
Angular developers and teams who want to enforce code quality and consistency in their Angular applications using ESLint, especially those migrating from TSLint or seeking advanced linting capabilities for templates.
Developers choose Angular ESLint because it provides seamless integration with Angular CLI, supports both TypeScript and HTML template linting, and offers a robust set of Angular-specific rules. Its alignment with Angular versions ensures compatibility, and the ability to write custom rules makes it highly extensible for project-specific needs.
:sparkles: Monorepo for all the tooling related to using ESLint with Angular
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides Angular-specific ESLint rules through dedicated plugins for TypeScript code and HTML templates, enabling linting of Angular constructs like components and services directly.
Includes a builder for running ESLint via `ng lint` and schematics for easy setup with `ng add`, making it trivial to integrate into existing Angular projects.
Offers utilities like @angular-eslint/utils and @angular-eslint/test-utils to write and test custom ESLint rules for both TypeScript and Angular templates, as highlighted in the dedicated guide.
Supports ESLint v9's flat config and legacy eslintrc formats, ensuring compatibility with both new and existing projects, as detailed in the configuration documentation.
Admits in the README that the tooling is less efficient than purpose-built solutions, especially when using rules requiring type information, which can slow down linting in large codebases.
Explicitly states it does not maintain code formatting rules, forcing teams to rely on external tools like Prettier for styling concerns, which adds complexity to the toolchain.
Setting up advanced features, such as rules needing type information or migrating from eslintrc to flat config, requires careful reading of guides and can be error-prone for inexperienced users.