ESLint v9.14.0 released

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

Support for Import Attributes

We have updated ESLint to fully support the ECMAScript 2025 Import Attributes syntax. This syntax allows module import statements and dynamic imports to pass on more information alongside the module specifier. Host environments can use this information to modify import behavior and support additional types of modules. For example, when type: "json" is specified, modules are treated as JSON Modules.

import json from "./foo.json" with { type: "json" };

import("foo.json", { with: { type: "json" } });

The updates in ESLint include parsing and ensuring that naming convention rules do not apply to import attribute keys as they are defined by the ECMAScript Specification or by the host environment and thus users have no control over their naming.

Please note that deprecated formatting rules will not be updated to support this syntax. If you are still using core formatting rules, we recommend switching to a source code formatter. Alternatively, you can replace core formatting rules with corresponding rules from @stylistic/eslint-plugin-js.

Support for RegExp Modifiers

We have updated ESLint to fully support the ECMAScript 2025 Regular Expression Pattern Modifiers. This feature allows you to change the currently active RegExp flags within a subexpression.

const regex1 = /^(?i:[a-z])[a-z]$/;

const regex2 = /^[a-z](?-i:[a-z])$/i;

The updates in ESLint include parsing and ensuring that rules related to regular expressions are behaving as expected.

Improved configuration file lookup performance

In v9.13.0, we introduced changes to how configuration files were looked up. Some of these changes negatively impact ESLint’s runtime performance due to incorrect caching of configuration file data. This was visible primarily using the default configuration lookup algorithm, where a 20-30% performance degradation was reported (the new algorithm, accessed via --flag unstable_config_lookup_from_file, has different performance characteristics and didn’t show the same negative performance impact in our tests).

We’ve now fixed the configuration file lookup caching behavior both in the default algorithm and the experimental algorithm so you should improved performance when you upgrade from v9.13.0.

Features

  • 3fa009f feat: add support for Import Attributes and RegExp Modifiers (#19076) (Milos Djermanovic)
  • b0faee3 feat: add types for the @eslint/js package (#19010) (Nitin Kumar)

Bug Fixes

  • 24d0172 fix: enable retry concurrency limit for readFile() (#19077) (Nicholas C. Zakas)
  • b442067 fix: Don’t crash when directory is deleted during traversal. (#19067) (Nicholas C. Zakas)
  • d474443 fix: avoid call stack overflow while processing globs (#19035) (Livia Medeiros)

Documentation

  • 151c965 docs: update context.languageOptions.parser description (#19084) (Nitin Kumar)
  • dc34f94 docs: Update README (GitHub Actions Bot)
  • f16e846 docs: Update README (GitHub Actions Bot)
  • ee0a77e docs: change link from @types/eslint to lib/types (#19049) (Karl Horky)
  • 50f03a1 docs: Clarify global ignores in config migration guide (#19032) (Milos Djermanovic)
  • 37c9177 build: update @wdio/* dependencies (#19068) (Francesco Trotta)
  • 35a8858 build: exclude flawed dendency versions (#19065) (Francesco Trotta)

Chores

  • f36cb16 chore: upgrade @eslint/js@9.14.0 (#19086) (Milos Djermanovic)
  • 28be447 chore: package.json update for @eslint/js release (Jenkins)
  • f48a2a0 test: add no-invalid-regexp tests with RegExp Modifiers (#19075) (Milos Djermanovic)
  • 425202e perf: Fix caching in config loaders (#19042) (Milos Djermanovic)
  • 3d44b3c ci: run tests in Node.js 23 (#19055) (Francesco Trotta)
  • 7259627 test: ensure tmp directory cleanup in check-emfile-handling.js (#19036) (Livia Medeiros)

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

ESLint v9.17.0 released
2 min read

ESLint v9.17.0 released

We just pushed ESLint v9.17.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 v9.16.0 released
2 min read

ESLint v9.16.0 released

We just pushed ESLint v9.16.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 v9.15.0 released
2 min read

ESLint v9.15.0 released

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