ESLint v8.x end-of-life is 2024-10-05 and will not be maintained after that. Upgrade or consider long-term support options

ESLint v8.45.0 released

We just pushed ESLint v8.45.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

Here are some of the important changes in this release.

Exporting of new LegacyESLint class

As we continue our transition to the flat config system, we’ve been working with integrators to understand how best to help them transition as well. While we provided the FlatESLint class to allow integrations to start using the flat config system before it’s set to default, we discovered that our original plan (replace ESLint with FlatESLint in v9.0.0) would have left integrations unable to support eslintrc during the transition.

To fix this, we added the LegacyESLint class as an export from /use-at-your-own-risk. Both FlatESLint and LegacyESLint will be available through the v9.0.0 lifecycle, allowing integrators to continue to support both config formats. You can use these classes like this:

const { FlatESLint, LegacyESLint } = require("eslint/use-at-your-own-risk"); 

If you are using the ESLint class in your integration, it’s a good idea to switch that to LegacyESLint to make the upgrade to v9.0.0 as smooth as possible when it is released later this year.

The plan is to remove both FlatESLint and LegacyESLint classes in v10.0.0.

New configuration migration guide

We’ve published a new Configuration Migration Guide to help you make the switch from eslintrc to flat config formats. Flat config is now considered feature complete and it’s a good time to start switching over before flat config becomes the default in v9.0.0. This guide walks you through the various sections of your eslintrc file and shows how to convert them to flat config.

We’re grateful for the early adopters of the new config system who provided the feedback that makes up the core of this new guide.

Features

Bug Fixes

Documentation

  • 89f3225 docs: add playground links to correct and incorrect code blocks (#17306) (Josh Goldberg ✨)
  • f8892b5 docs: Expand rule option schema docs (#17198) (Matt Wilkinson)
  • 8bcbf11 docs: Config Migration Guide (#17230) (Ben Perlmutter)
  • bb30908 docs: Update README (GitHub Actions Bot)
  • 84d243b docs: Update README (GitHub Actions Bot)
  • b762632 docs: Update README (GitHub Actions Bot)
  • 138c096 docs: add more prefer-destructuring examples with array destructuring (#17330) (Milos Djermanovic)
  • 1fc50a8 docs: max-len rule code and tabWidth as positional arguments (#17331) (Jesús Leganés-Combarro)

Chores

  • 68f63d7 chore: package.json update for @eslint/js release (ESLint Jenkins)
  • 5ca9b4d chore: update eslint-config-eslint exports (#17336) (Milos Djermanovic)
  • 7bf2e86 chore: remove unused dependencies (#17352) (Percy Ma)
  • c6f8cd0 chore: Remove defaultIgnores from FlatESLint private members (#17349) (Francesco Trotta)
  • 0052374 chore: move jsdoc settings to eslint-config-eslint (#17338) (唯然)

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

ESLint v9.10.0 released
2 min read

ESLint v9.10.0 released

We just pushed ESLint v9.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.

Trunk becomes ESLint gold sponsor
1 min read

Trunk becomes ESLint gold sponsor

We are happy to announce that Trunk is a gold sponsor of ESLint. We are grateful to founders Eli Schleifer and David Apirian, as well as the whole Trunk team.