ESLint Major Version Migration (v8 to v9)
Track all package changes when migrating ESLint from v8 to v9, including removed plugins, new flat config packages, and updated shared configs.
Detailed Explanation
ESLint v8 to v9 Migration
ESLint 9 introduced the flat config system, which fundamentally changed how ESLint is configured. This migration involves not just updating ESLint itself but replacing many plugins and config packages.
Typical ESLint 8 to 9 diff
devDependencies:
~ eslint: ^8.50.0 -> ^9.0.0 [MAJOR]
- eslint-config-next: ^14.0.0 [REMOVED]
- @typescript-eslint/parser: ^6.0.0 [REMOVED]
- @typescript-eslint/eslint-plugin: ^6.0.0 [REMOVED]
+ @eslint/js: ^9.0.0 [ADDED]
+ typescript-eslint: ^8.0.0 [ADDED]
+ eslint-config-next: ^15.0.0 [ADDED - new version]
+ globals: ^15.0.0 [ADDED]
Key changes in ESLint 9
| Old (v8) | New (v9) |
|---|---|
.eslintrc.json |
eslint.config.mjs (flat config) |
@typescript-eslint/parser |
typescript-eslint (unified package) |
@typescript-eslint/eslint-plugin |
typescript-eslint |
eslint-plugin-import |
Often replaced with eslint-plugin-import-x |
extends array |
...configs spread syntax |
Migration checklist
Use the diff to verify:
- ESLint core updated to v9+
- Old packages removed:
@typescript-eslint/parser,@typescript-eslint/eslint-plugin - New packages added:
typescript-eslint,@eslint/js,globals - Config file renamed:
.eslintrc.*toeslint.config.* - Scripts updated:
eslintcommands may need new flags
Why the diff tool helps here
This migration involves simultaneous additions and removals. Without a structured diff, it is easy to miss a removed package or forget to add a replacement. The summary panel shows you the total count of changes at a glance.
Use Case
A team is migrating their project from ESLint 8 with the traditional .eslintrc config to ESLint 9 with flat config. They use the Package.json Diff tool to verify all old plugin packages were properly replaced with their new equivalents.
Try It — Package.json Diff
Related Topics
TypeScript Version Upgrade Impact Analysis
Version Analysis
Comparing devDependency Changes Separately
Development Tooling
Comparing npm Scripts Before and After Refactoring
Build Configuration
Major Version Upgrade: Detecting Breaking Changes
Version Analysis
React 18 to React 19 Migration Diff
Framework Migration