ESLint Blog
フィード

ESLint v10.0.0 released
ESLint Blog
HighlightsESLint v10.0.0 is a major release that includes several new features and breaking changes. Here are some of the most notable updates.InstallingBecause this is a major release, you may not automatically be upgraded by npm. To ensure you are using this version, run:npm i [email protected] --save-dev1Copy code to clipboard Node.js < v20.19.0, v21.x, v23.x no longer supportedAs of this post, Node.js v24.x is the LTS release, and as such we are dropping support for all versions of Node.js prior to v20.19.0 as well as v21.x and v23.x.Migration GuideAs there are a lot of changes, we’ve created a migration guide describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.New configuration file lookup algorithmESLint v10.0.0 locates eslint.config.* by starting from the directory of each linted
14日前

ESLint v10.0.0-rc.2 released
ESLint Blog
HighlightsThis version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you have any problems or feedback by creating issues on our GitHub repo.Note that this prerelease version of ESLint has a separate documentation section.Notable bug fixesA regression in the core strict rule has been fixed.LegacyESLint and FlatESLint exports are now completely removed from the /use-at-your-own-risk entrypoint. In previous prerelease versions of ESLint v10, they were exported as null.InstallingSince this is a pre-release version, you will not automatically be upgraded by npm. You must specify the next tag when installing:npm i eslint@next --save-dev1Copy code to clipboard You can also specify the version directly:npm i [email protected] --save-dev1Copy code to clipboard Migration GuideAs there are a lot of changes, we’ve created a migration guide describing the breaking changes in great detail al
24日前

ESLint v10.0.0-rc.1 released
ESLint Blog
HighlightsThis version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you have any problems or feedback by creating issues on our GitHub repo.Note that this prerelease version of ESLint has a separate documentation section.Espree and ESLint Scope now include typesBeginning with Espree v11.1.0 and ESLint Scope v9.1.0, these packages now contain built-in type definitions.Previously, type definitions were provided by Definitely Typed packages @types/espree and @types/eslint-scope. There are several differences between the old and new type definitions, mostly bug fixes. If your code relies on types for the Espree and ESLint Scope packages, check if there are any updates needed.InstallingSince this is a pre-release version, you will not automatically be upgraded by npm. You must specify the next tag when installing:npm i eslint@next --save-dev1Copy code to clipboard You can also specif
1ヶ月前

ESLint's 2025 year in review
ESLint Blog
The plan for 2025 was to build upon the foundation of language plugins introduced in 2024 and to start the long-awaited core rewrite. We spent the year expanding our official language support to include CSS and HTML, introducing significant performance improvements through multithreaded linting, and preparing for the next major version, ESLint v10.0.0.Expanding language support: CSS and HTMLFollowing the release of JSON and Markdown support in 2024, we continued our mission to make ESLint a truly language-agnostic linter. In February, we released official CSS support via the @eslint/css plugin, allowing users to lint their stylesheets with the same familiar configuration system.In May, we were excited to announce that html-eslint had joined the ESLint ecosystem as a language plugin, bringing robust HTML linting to the project. These additions mean that ESLint can now officially be used to lint the “big three” of the web: JavaScript, CSS, and HTML.ESLint’s new CSS and HTML support were
1ヶ月前

ESLint v10.0.0-rc.0 released
ESLint Blog
HighlightsThis version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you have any problems or feedback by creating issues on our GitHub repo.Note that this prerelease version of ESLint has a separate documentation section.Enhancements to RuleTesterSince its earliest days, ESLint has provided the RuleTester API to help plugin authors test their rules against custom test cases and configurations. This release introduces several enhancements to RuleTester to enforce more robust test definitions and improve debugging.requireData assertion optionA new assertion option, requireData, is now available. When set to true, RuleTester will require invalid test cases to include a data object whenever a messageId references a message with placeholders. This helps ensure that tests remain consistent with rule messages that rely on placeholder substitution.For example, consider a hypothetical ru
1ヶ月前

ESLint v9.39.2 released
ESLint Blog
HighlightsThis release prints a warning message when an /* eslint-env */ configuration comment is found in the code being linted. The warning includes the filename and line number of the comment, along with instructions on how to replace it. The purpose of this warning is to allow for a smoother migration, since starting with ESLint v10.0.0, /* eslint-env */ comments are reported as errors by the linter, as explained in the migration guide.Bug Fixes5705833 fix: warn when eslint-env configuration comments are found (#20381) (sethamus)Build Related506f154 build: add .scss files entry to knip (#20391) (Milos Djermanovic)Chores7ca0af7 chore: upgrade to @eslint/[email protected] (#20394) (Francesco Trotta)c43ce24 chore: package.json update for @eslint/js release (Jenkins)4c9858e ci: add v9.x-dev branch (#20382) (Milos Djermanovic)
2ヶ月前

ESLint v10.0.0-beta.0 released
ESLint Blog
HighlightsThis version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you have any problems or feedback by creating issues on our GitHub repo.Most of the highlights of this release are breaking changes, and are discussed further in the migration guide. There are summaries of the significant changes below. (Less significant changes are included in the migration guide.)This prerelease version of ESLint has a separate documentation section.RuleTester assertion optionsThe RuleTester#run() method now supports assertion options, specifically requireMessage and requireLocation, to let developers enforce stricter requirements in rule tests. These options enforce that every invalid test case explicitly checks violation messages and/or locations, ensuring that a test fails if it doesn’t meet the requirements.requireMessageEnsures every test case includes a message check.Accepts:true: Must u
2ヶ月前

ESLint v10.0.0-alpha.1 released
ESLint Blog
HighlightsThis version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our GitHub repo.Most of the highlights of this release are breaking changes, and are discussed further in the migration guide. There are summaries of the significant changes below. (Less significant changes are included in the migration guide.)This prerelease version of ESLint has a separate documentation section.Removed deprecated SourceCode methodsThe following SourceCode methods are no longer available:getTokenOrCommentBefore() - Use getTokenBefore() with the { includeComments: true } option insteadgetTokenOrCommentAfter() - Use getTokenAfter() With the { includeComments: true } option insteadisSpaceBetweenTokens() - Use isSpaceBetween() insteadgetJSDocComment() - No replacementUsers of plugins that haven’t updated their code yet can use the @eslint/co
3ヶ月前

ESLint v10.0.0-alpha.0 released
ESLint Blog
HighlightsThis version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our GitHub repo.Most of the highlights of this release are breaking changes, and are discussed further in the migration guide. There are summaries of the significant changes below. (Less significant changes are included in the migration guide.)This prerelease version of ESLint has a separate documentation section.Node.js < v20.19.0, v21, v23 no longer supportedAs of this post, Node.js v22.x is the LTS release, and as such we are dropping support for all versions of Node.js prior to v20.19.0 as well as v21.x and v23.x.ESLint v10.0.0 supports the following versions of Node.js:Node.js v20.19.0 and aboveNode.js v22.13.0 and aboveNode.js v24 and aboveNew configuration file lookup algorithmESLint v10.0.0 locates eslint.config.* by starting from the directory of
3ヶ月前

ESLint v9.39.1 released
ESLint Blog
HighlightsThis patch release fixes an issue introduced in ESLint v9.39.0 where visitors of all rules are invoked with a second argument. This change broke third-party rules that expect visitor functions to receive only a single argument, notably @typescript-eslint/unified-signatures. To ensure compatibility, ESLint v9.39.1 restores the previous behavior of invoking visitors for JavaScript/TypeScript with only the target node as the argument.Bug Fixes650753e fix: Only pass node to JS lang visitor methods (#20283) (Nicholas C. Zakas)Documentation51b51f4 docs: add a section on when to use extends vs cascading (#20268) (Tanuj Kanti)b44d426 docs: Update README (GitHub Actions Bot)Chores92db329 chore: update @eslint/js version to 9.39.1 (#20284) (Francesco Trotta)c7ebefc chore: package.json update for @eslint/js release (Jenkins)61778f6 chore: update eslint-config-eslint dependency @eslint/js to ^9.39.0 (#20275) (renovate[bot])d9ca2fc ci: Add rangeStrategy to eslint group in renovate config
4ヶ月前