v10.0.0-alpha.0
Breaking Changes📦 eslintView on GitHub →
⚠ 10 breaking✨ 5 features🐛 3 fixes⚡ 3 deprecations🔧 10 symbols
Summary
ESLint v10 introduces significant breaking changes including the removal of .eslintrc support, updated Node.js requirements, and the removal of deprecated rule context methods. It also updates the recommended configuration and tightens several rule schemas.
⚠️ Breaking Changes
- Removed deprecated rule context methods. Rules using these methods must be updated to use the new context API.
- Removed support for .eslintrc configuration files. Users must migrate to the flat config format (eslint.config.js).
- Program range now spans the entire source text, which may affect plugins relying on specific AST offsets.
- RuleFixer methods now strictly assert that 'text' is a string.
- The 'always' and 'as-needed' options for the 'radix' rule are now deprecated/removed.
- eslint-env comments are now reported as errors; environment configuration should be moved to the config file.
- Removed deprecated LintMessage#nodeType and TestCaseError#type properties.
- Dropped support for jiti versions older than 2.2.0.
- no-shadow-restricted-names now reports 'globalThis' by default.
- Minimum Node.js version requirement increased to ^20.19.0 || ^22.13.0 || >=24.
Migration Steps
- Upgrade Node.js to a supported version (^20.19.0, ^22.13.0, or >=24).
- Convert .eslintrc configuration files to the flat config (eslint.config.js) format.
- Remove eslint-env comments from source files and move environment globals to the configuration file.
- Update custom rules to avoid deprecated context methods and nodeType properties.
- Ensure jiti is updated to version 2.2.0 or higher if used.
✨ New Features
- Support for ScopeManager#addGlobals().
- Updated eslint:recommended configuration.
- Added uniqueItems: true constraint to no-invalid-regexp options.
- Tightened schema for func-names rule.
- Removed v10_* and inactive unstable_* feature flags.
🐛 Bug Fixes
- Ensured RuleFixer methods validate that input text is a string.
- Fixed no-invalid-regexp option schema to include uniqueItems.
- Corrected regex for eslint-plugin/report-message-format.
🔧 Affected Symbols
RuleContextRuleFixerScopeManager.addGlobalsno-invalid-regexpradixfunc-namesno-shadow-restricted-namesLintMessage.nodeTypeTestCaseError.typeeslint:recommended⚡ Deprecations
- Deprecated 'always' and 'as-needed' options of the radix rule.
- Deprecated rule context methods (removed in this release).
- Deprecated LintMessage#nodeType and TestCaseError#type (removed in this release).