PACKAGE · LINTING & FORMATTING

eslint

An AST-based pattern checker for JavaScript.

WEEKLY DOWNLOADS 67.4M
STARS 27.3K
FORKS 5.0K
OPEN ISSUES 111
GZIP SIZE 445.1 kB
UNPACKED SIZE 2.9 MB
DEPENDENCIES 47
LAST UPDATED 3mo ago
DOWNLOAD TRENDS

eslint downloads — last 12 months

Download trends for eslint1 download series from Jun 2025 to May 2026. Use left and right arrow keys to inspect monthly values.0139.8M279.7M419.5M559.4MJun 2025SepDecMarMay 2026
eslint
ABOUT ESLINT

ESLint is a widely adopted static code analysis tool designed to identify problematic patterns in JavaScript and TypeScript code. It operates by parsing code into an Abstract Syntax Tree (AST) and then applying a configurable set of rules to detect potential errors, anti-patterns, and style deviations before runtime.

The core philosophy behind ESLint is to empower developers to enforce code quality and maintain consistency across projects of any size. It's built by developers, for developers, offering a highly customizable experience to fit diverse project needs and team preferences. Its primary audience includes individual developers, small teams, and large organizations seeking to automate code review processes and improve overall code health.

ESLint's extensibility is a key feature, allowing developers to create custom rules, plugins, and formatters to tailor the linting experience precisely. This is achieved through its plugin architecture and the ability to extend core rulesets. Developers can define rules using the `RuleTester` API for testing their custom logic, ensuring robustness and adherence to project standards.

Integration points are numerous, with ESLint seamlessly fitting into various development workflows. It supports pre-commit hooks via tools like Husky and lint-staged, CI/CD pipelines, and code editors through dedicated plugins for VS Code, Sublime Text, and others. Frameworks like React, Vue, and Angular often have specific ESLint configurations and plugins available to enforce framework-specific best practices.

With over 127 million weekly downloads and a mature codebase, ESLint demonstrates significant stability and community backing. While its unpacked size is approximately 2.9 MB and gzipped bundle size around 445.1 kB, this reflects its comprehensive feature set rather than a lack of optimization. The tool is designed for analysis, not runtime performance impact, making its size a reasonable trade-off for the benefits it provides.

One consideration is ESLint's performance on extremely large codebases, where a vast number of rules and files can lead to longer analysis times. While configurable, optimizing linting speed might require careful rule selection, disabling unnecessary checks, or leveraging caching mechanisms. For very simple linting needs or projects where build times are exceptionally critical and cannot tolerate any analysis overhead, extremely lightweight alternatives might be considered.

WHEN TO USE
  • When establishing consistent coding standards across a JavaScript or TypeScript project, leveraging configurable rules like `no-unused-vars`.
  • When integrating code quality checks into pre-commit hooks to prevent style violations from entering the repository.
  • When building complex applications where maintaining code readability and preventing common errors, such as undefined variable access, is crucial.
  • When working within a team environment to enforce a shared understanding of code structure and best practices.
  • When utilizing specific framework or library features requires specialized linting rules, such as those provided by `@typescript-eslint/eslint-plugin` or `eslint-plugin-react`.
  • When automating parts of the code review process by automatically flagging potential bugs and stylistic inconsistencies.
WHEN NOT TO USE
  • If your project exclusively uses a language other than JavaScript or TypeScript without transpilation steps that produce compatible output.
  • If you only require basic syntax validation, a simple JavaScript parser might suffice without the overhead of a full linting engine.
  • When integrating into environments with extremely restrictive resource constraints where even the analysis overhead of ESLint cannot be accommodated.
  • If the project's scope is so minimal that the effort to configure and maintain ESLint rules outweighs the perceived benefits of code standardization.
  • If you are exploring alternatives that offer opinionated, zero-configuration setups for specific frameworks, a simpler alternative tailored to that framework might be smoother to adopt initially.

CORRECTIONS

Spot wrong data here?

A short note helps us fix it.

Anonymous · No account · No email back

COMPARISONS 4
eslint vs @biomejs/biome ★ 24.9K · 4.5M/wk eslint vs dprint-node ★ 491 · 662.8K/wk eslint vs prettier ★ 51.9K · 54.1M/wk eslint vs oxlint ★ 21.5K · 3.9M/wk