Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"css-minimizer-webpack-plugin": "^3.2.0",
"dotenv": "^10.0.0",
"dotenv-expand": "^5.1.0",
"eslint": "^8.23.1",
"eslint": "^9.0.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 ESLint 9 major version upgrade breaks linting due to incompatible config format and plugin peer dependencies

Upgrading ESLint from ^8.23.1 to ^9.0.0 (resolves to 9.39.4 in yarn.lock) is a breaking change. ESLint 9 uses the flat config system (eslint.config.js) by default, but this project only has a legacy .eslintrc file and no eslint.config.js. Running eslint . (the lint script at package.json:107) will fail because ESLint 9 won't read .eslintrc without setting ESLINT_USE_FLAT_CONFIG=false. Additionally, the installed ESLint plugins and configs (eslint-config-react-app@7.0.1, eslint-config-airbnb@19.0.4, @typescript-eslint/eslint-plugin@^5.x, eslint-plugin-react-hooks@^4.6.0, eslint-webpack-plugin@3.2.0) all declare peer dependencies on ESLint 7 or 8, not ESLint 9. This also breaks the webpack dev server's ESLint integration via eslint-webpack-plugin (config/webpack.config.js).

Suggested change
"eslint": "^9.0.0",
"eslint": "^8.23.1",
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ESLint 9 upgrade breaks build with incompatible plugins

High Severity

Upgrading eslint from ^8.23.1 to ^9.0.0 (resolves to 9.39.4) without updating the rest of the ESLint ecosystem will break the project build. ESLint 9 removed resolvePluginsRelativeTo and changed the ESLint class API, but eslint-webpack-plugin@3.2.0 in config/webpack.config.js passes both resolvePluginsRelativeTo and baseConfig to the ESLint constructor. Additionally, eslint-config-react-app@^7.0.1, eslint-config-airbnb@^19.0.4, @typescript-eslint/*@^5.38.0, and other plugins all have peer dependencies on ESLint 8 and are incompatible with ESLint 9's flat config system. The eslintConfig section in package.json also uses the legacy .eslintrc format (extends: "react-app"), which ESLint 9 no longer loads by default.

Additional Locations (1)
Fix in Cursor Fix in Web

"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^16.2.0",
"eslint-config-prettier": "^8.5.0",
Expand Down
Loading
Loading