ESLint Migration Guides

Why .eslintrc.js is a manual-review case for flat config migration

Understand why JS-backed ESLint configs are out of scope for deterministic flat-config migration.

Start here

The safe first move

Treat .eslintrc.js and its cousins as a repo-fit boundary. The honest move is to detect them, report them, and leave them untouched.

Stop before automation when: Any JS config that computes env, plugins, or rules. Module imports inside the config file.

Target shape

// manual review required
// keep logic-bearing config out of the deterministic path

Repo fit check

Want to know if your repo has this pattern?

Run the matching scanner locally first. The fit-report add-on is not listed for this proof-only product yet, so use the proof page and scanner output before treating it as a purchase candidate.

  • Local scan; no repository upload.
  • Supported findings are separated from manual-review findings.
  • Buy only when the repeated pattern is worth automating.
Run the static-config scan View example report See when to buy
Example scan summary
supported_findings: 38
manual_review_findings: 6
files_uploaded: 0
confidence: reviewable

Why this page exists

Why .eslintrc.js is a manual-review case for flat config migration

JS config files look close to static config until they are not. Good tooling should report them, not execute them.

Direct answer

What changes

Treat .eslintrc.js and its cousins as a repo-fit boundary. The honest move is to detect them, report them, and leave them untouched.

Example

Before and after

Before

module.exports = {
  extends: ["eslint:recommended"],
  rules: process.env.CI ? { "no-console": "error" } : {},
};

After

// manual review required
// keep logic-bearing config out of the deterministic path

Decision path

If this repeats across the repo, open the evaluation pages next.

This product exists for the static-config subset. It does not pretend to evaluate JS config logic.

  • Teams migrating static .eslintrc JSON or YAML configs.
  • Repos that still store eslintConfig inside package.json.
  • The fit-report add-on is not listed for this proof-only product yet; use the proof page and scanner output before treating this as purchasable.

Before checkout

Product fit, proof, and price should all be one click away.

Current listed price is not published on the pricing page yet.

Typical symptoms

  • The repo config contains logic, not static data.
  • The migration needs a clean red flag instead of a false promise.
  • Teams want to know fast whether the repo is a fit.

What the product covers

  • Explicit unsupported-js-config findings.
  • Fast repo qualification before buying the flat-config pack.
  • Links to the supported static-config guides.

Manual-review boundary

  • Any JS config that computes env, plugins, or rules.
  • Module imports inside the config file.
  • Repos that already started a custom flat config migration.

FAQ

Fast answers before you decide

What is the safest fix for .eslintrc.js flat config migration?

Treat .eslintrc.js and its cousins as a repo-fit boundary. The honest move is to detect them, report them, and leave them untouched.

Can .eslintrc.js flat config migration be automated?

Automate only the supported subset: Explicit unsupported-js-config findings. Fast repo qualification before buying the flat-config pack. Links to the supported static-config guides. Keep these cases in manual review: Any JS config that computes env, plugins, or rules. Module imports inside the config file. Repos that already started a custom flat config migration.

When should I buy ESLint Flat Config Migration Cleanup Pack?

Use ESLint Flat Config Migration Cleanup Pack only when this pattern repeats across enough files that manual cleanup is still costly. Run the public scan or read the proof first. The fit-report add-on is not listed for this proof-only product yet; if unsupported findings dominate, keep the work manual.