How are you handling ESLint 10 breaking changes in older projects?
Asked by
MellowCedar42
ESLint 10 is breaking some of my older projects. For now, I've avoided updates between 10.0.0 and 10.1.0, but manually pinning around specific releases feels awkward and hard to maintain. How are you handling backward-compatibility issues with ESLint? Are you using the migration tools, waiting for plugins to catch up, staying on an older version, or switching to another linter?
Answers
I moved some projects to Biome. It removed several dependencies, made CI noticeably faster, and avoided a lot of plugin compatibility problems. It isnโt necessarily the right choice for every existing codebase, but it has been a good alternative for projects where the ESLint setup became too difficult to maintain.
Reply to this answer
I switched to Oxlint for a few projects. Itโs much faster and has a simpler out-of-the-box setup, so thereโs less need to assemble a plugin for every use case. For stable production projects, though, Iโd still avoid switching just to escape one breaking release unless the existing setup is already causing trouble.
Reply to this answer
Iโm keeping older projects on ESLint 9 for now. Thereโs no real benefit in forcing an upgrade before the configuration and plugin ecosystem is ready, and pinning a known-good version keeps builds consistent.
Reply to this answer
The official migration guide recommends running the v9-to-v10 codemod with `npx codemod @eslint/v9-to-v10`. It can help with the core migration, although projects with unusual setups or outdated extensions may still need manual cleanup. If the codemod creates a lot of noise, that may be a sign to wait before upgrading.
Reply to this answer
Add your answer
Answers are reviewed before publication.
QuietMaple53: In my case, the main issue was extensions that hadnโt been updated yet rather than ESLint itself. We used the migration as a chance to simplify the configuration and reduce our dependency on plugins.
PixelFern26: Projects managed through Nx may need to wait for its migration support instead of applying every change manually.