Convert legacy .eslintrc.json and .eslintrc.js configurations into ESLint v9 flat config (eslint.config.mjs) with typescript-eslint support.
import js from '@eslint/js';
import tseslint from 'typescript-eslint';
export default tseslint.config(
js.configs.recommended,
...tseslint.configs.recommended,
{
rules: {
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": [
"error"
],
"no-console": "warn"
},
},
{
ignores: ['dist/**', '.next/**', 'node_modules/**'],
},
);
ESLint v9 replaces .eslintrc.* with an exported array of configuration objects in eslint.config.mjs.
Plugins must now be imported as JavaScript modules rather than referenced as string names.
Paste your legacy .eslintrc.json or .eslintrc.js content.
The migrator structures an exported array conforming to ESLint v9 flat config specification.
Plugins are mapped to modern ESM module imports instead of string identifiers.
Copy the output to `eslint.config.mjs` in your project root.
name: Code Quality
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npx eslint .
Perform identical migration routines across entire directories or repositories in your local terminal:
devflow migrate eslintrc-to-flat-config -i .eslintrc.json -o eslint.config.mjsInstantly migrate npm scripts, dependencies, and configurations to Bun. Optimize script execution speeds and strip obsolete transpilations.
Convert webpack.config.js bundles into lightning-fast Vite configs (vite.config.ts). Eliminate multi-minute cold starts and reload delays.