Guides

ESLint Migration Guides

Exact-problem pages for static ESLint config migration.

Problem pages

Exact-problem pages for static ESLint config migration.

How to migrate .eslintrc to eslint.config.cjs with FlatCompatConvert static .eslintrc JSON or YAML into eslint.config.cjs without executing JS logic.How to migrate package.json eslintConfig to flat configConvert static package.json eslintConfig blocks into flat config without evaluating JS.Why .eslintrc.js is a manual-review case for flat config migrationUnderstand why JS-backed ESLint configs are out of scope for deterministic flat-config migration.How to move .eslintignore patterns into flat configCarry straightforward .eslintignore and ignorePatterns entries into flat config while keeping the hard cases explicit.Why negated ignore patterns need manual review in flat config migrationUnderstand why negated ignore rules belong in manual review instead of a guessed flat-config translation.Why multiple legacy ESLint config sources block flat config migrationIf a repo has more than one legacy ESLint config source, the deterministic migration path should stop for manual review.What to do when eslint.config.* already existsIf the repo already has eslint.config.js, .cjs, or .mjs, the static legacy-config migration path should stop for manual review.How to migrate env and globals settings to ESLint flat configMove env and globals from legacy config into the flat config languageOptions object.How to migrate ESLint overrides to flat config arraysOverrides in legacy config become separate array elements in flat config.How to migrate parserOptions to ESLint flat configMove parserOptions into languageOptions.parserOptions in flat config.