ESLint v9.x reached end-of-life on 2026-08-06 and is no longer maintained. Upgrade or consider long-term support options

ESLint v10.11.0 released

We just pushed ESLint v10.11.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.

Highlights

Faster startup and linting

This release includes a set of performance improvements across ESLint’s core linting pipeline and the stylish formatter. Linting results and the public API are unchanged: the same files produce the same messages as before, just faster.

The main improvements are:

  • Startup. Loading the eslint package no longer eagerly initializes the JSON Schema validator used for rule options. It’s now created the first time a rule’s options actually need to be validated, which removes about 45 modules from the initial dependency graph and reduces package load time by 20–25%.
  • Rule execution. When ESLint traverses a file’s structure, it has to decide, for every piece of code, which rules are interested in it and then call those rules. This is the most frequently executed part of the linting process, and it now takes a shorter route in the most common cases. Common node selector types are handled by fast paths, and rule visitors are invoked directly whenever possible instead of through a wrapper function on every node.
  • Overhead per reported problem. When a rule reports a problem, ESLint needs to perform several processing steps before displaying a message. Some of those steps have been made cheaper: placeholders in message templates are only filled in when necessary, autofixes are checked for validity without serializing each one to JSON, and one fixer object is shared by all problems reported in a file instead of creating one per fix. Also, files without any eslint-enable or eslint-disable comments now skip the directive processing step altogether.
  • Default formatter. The default stylish formatter avoids stripping terminal control characters from strings that don’t contain any and no longer runs a regular expression on every message, which speeds up printing large numbers of problems.

Actual results will vary depending on your configuration and hardware, but projects using many core rules should see a noticeable improvement in both startup time and overall linting time.

Features

Bug Fixes

Documentation

Chores

  • 520dd77 perf: Implement fast paths in critical areas (#21210) (Nicholas C. Zakas)
  • 92086c8 test: update EMFILE error generation for Node.js 26.9.0 compatibility (#21330) (Francesco Trotta)
  • 9ac7eb6 chore: update github/codeql-action action to v4.38.0 (#21331) (renovate[bot])
  • 24310e3 chore: update ecosystem plugins (#21324) (ESLint Bot)
  • 45ad79e ci: bump pnpm/action-setup from 6.0.10 to 6.1.0 (#21318) (dependabot[bot])
  • ac74e37 chore: Add AGENTS.md with AI disclosure requirements (#21221) (Nicholas C. Zakas)
  • c832660 chore: Upgrade Stylelint to the latest version in docs (#21245) (Jung Hyeon Jun)
  • f9f88fc chore: update ecosystem plugins (#21308) (ESLint Bot)
  • fc81076 ci: add more types integration tests (#20395) (Nitin Kumar)

The latest ESLint news, case studies, tutorials, and resources.

ESLint v10.10.0 released
1 min read

ESLint v10.10.0 released

We just pushed ESLint v10.10.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.

ESLint v10.9.1 released
1 min read

ESLint v10.9.1 released

We just pushed ESLint v10.9.1, which is a patch release upgrade of ESLint. This release fixes several bugs found in the previous release.

ESLint v10.9.0 released
1 min read

ESLint v10.9.0 released

We just pushed ESLint v10.9.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.