ESLint
by OpenJS Foundation · CLI tool
Pluggable static analysis tool for JavaScript and TypeScript that finds problems in code through configurable rules and can fix many automatically
Overview
ESLint is a linter for JavaScript and TypeScript maintained under the OpenJS Foundation and released under the MIT license. It parses source files into an abstract syntax tree and runs a configurable set of rules against it, reporting errors or warnings and applying automatic fixes where a rule supports them. Rules cover correctness issues, questionable patterns and style, and are grouped into shareable configurations published as npm packages.
The plugin system is the reason for its reach: typescript-eslint adds type-aware rules, and plugins exist for React, Vue, Node.js, imports, accessibility and most frameworks. Since version 9 the default configuration format is the flat eslint.config.js file, which replaced the older .eslintrc hierarchy; the migration is a common upgrade task in existing projects. ESLint runs from the command line, in CI and inside editors through the official extension. Its limitations are speed on large codebases, especially with type-aware rules, and configuration complexity when many plugins interact; this is the space where Biome positions itself as a faster alternative, and ESLint has in turn added language plugins for JSON, Markdown and CSS to broaden its scope.
Capabilities
- Configurable rules with automatic fixes
- Plugin ecosystem including type-aware TypeScript rules
- Shareable configurations distributed via npm
- Flat configuration file (eslint.config.js)
- Editor integration and CI reporting formats
- Language plugins for JSON, Markdown and CSS
Typical workflows
- Enforce a shared rule set across a monorepo
- Fail CI on lint errors and auto-fix locally on save
- Add type-aware rules to a TypeScript project
Strengths
- Largest rule and plugin ecosystem for JavaScript
- Highly configurable
- MIT license, foundation governance
Limitations
- Slower than Rust-based linters on large codebases
- Configuration can become complex with many plugins
- Flat config migration required for older projects
Prerequisites
- Node.js and npm, pnpm or Bun
Who it is for
- JavaScript and TypeScript developers
- Teams enforcing coding standards
Alternatives & comparison
Biome combines linting and formatting in one Rust binary and is considerably faster, but supports fewer rules and plugins than the ESLint ecosystem. Prettier is a formatter rather than a linter; the two are commonly used together with ESLint handling correctness rules and Prettier handling layout.
- Biome
Rust-based formatter and linter for JavaScript, TypeScript, JSX, JSON, CSS and GraphQL that replaces Prettier and ESLint with one binary
Open sourceOpen source - Prettier
Opinionated code formatter for JavaScript, TypeScript, CSS, HTML, Markdown, YAML and more that reprints code from its syntax tree with few options
Open sourceOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Licensehttps://github.com/eslint/eslint/blob/main/LICENSEchecked Nov 1, 2026
Supports: license_spdx, source_model
- Official documentationchecked Nov 1, 2026
- Official sitechecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Verified · Nov 2, 2026
Spotted an error?
More in Testing & QA
Playwright
Microsoft · Testing & QA
Microsoft's browser automation and end-to-end testing framework driving Chromium, Firefox and WebKit from one API in TypeScript, Python, Java and .NET
Puppeteer
Google (Chrome DevTools team) · Data collection & crawling
Node.js library from the Chrome team for controlling Chrome and Firefox over the DevTools Protocol or WebDriver BiDi, used for scraping, screenshots, PDFs and testing
Cypress
Cypress.io · Testing & QA
End-to-end and component testing framework that runs tests inside the browser with an interactive runner, paired with the commercial Cypress Cloud
Vitest
VoidZero / Vitest team · Testing & QA
Vite-native unit test framework for JavaScript and TypeScript with a Jest-compatible API, watch mode, coverage and browser mode
Semgrep
Semgrep, Inc. · Security tools
Static analysis engine that matches code patterns written in the target language's own syntax, with an LGPL community edition and a commercial AppSec platform
Jest
OpenJS Foundation · Testing & QA
JavaScript testing framework created at Meta with built-in assertions, mocking, snapshot testing and parallel test execution