ESLint
eslint.org › blog › 2026 › 02 › eslint-v10.0.0-released
ESLint v10.0.0 released - ESLint - Pluggable JavaScript Linter
3 weeks ago - The loadESLint() function now always returns the ESLint class. The Linter constructor configType argument can only be "flat" and will throw an error if "eslintrc" is passed.
Support for Eslint v9 Flat Config format
ConfigError: Config (unnamed): Key "parserOptions": This appears to be in eslintrc format rather than flat config format. More on github.com
How to use new "flat config" approach in Eslint?
Summary I have Eslint working in a TypeScript Next.js project, but I want to switch to the new "flat config" approach that Eslint offers. (Why is that not Next.js's default?) I create... More on github.com
Change Request: Flat config extends
ESLint version HEAD What problem do you want to solve? Now that more folks are moving to ESLint v9 and flat config, a common complaint is that it's difficult to extend configs from plugins. Whe... More on github.com
📈 Tracking: Flat Config support
👋 Hi all! With flat config stabilized and ESLint v9 on the horizon released!, many community plugins are adding native support for flat config. The Configuration Migration Guide provides docs on ho... More on github.com
Videos
09:15
3. How to Set Up ESLint 9 with Prettier in Node.js (Flat Config ...
Going flat with ESLint
11:34
ESLint: Setting Up from Start to Finish - YouTube
00:49
Having trouble with ESLint's new flat config? #coding ...
10:30
The SECRET to Perfect Code Formatting with ESLint and Prettier ...
08:10
ESLint Config Automation With Nx - YouTube
npm
npmjs.com › package › eslint-flat-config-utils
eslint-flat-config-utils - npm
February 7, 2026 - Utils for managing and manipulating ESLint flat config arrays. Latest version: 3.0.2, last published: a day ago. Start using eslint-flat-config-utils in your project by running `npm i eslint-flat-config-utils`. There are 238 other projects in the npm registry using eslint-flat-config-utils.
» npm install eslint-flat-config-utils
Published Mar 09, 2026
Version 3.0.2
Author Anthony Fu
GitHub
github.com › standard › eslint-config-standard › issues › 411
Support for Eslint v9 Flat Config format · Issue #411 · standard/eslint-config-standard
January 17, 2024 - Here's what I did config as follows in eslint.config.js // eslint.config.js import standard from 'eslint-config-standard' export default [ standard, // ... ] this will report: ConfigError: Config (unnamed): Key "parserOptions": This appe...
Published Apr 16, 2024
ESLint
eslint.org › blog › 2025 › 03 › flat-config-extends-define-config-global-ignores
Evolving flat config with extends
March 7, 2025 - One pointed criticism is that they never knew how to extend another configuration because some were objects, some were arrays, and not all plugins exposed their flat configs the same way. Here’s an example: import js from "@eslint/js"; import tailwind from "eslint-plugin-tailwindcss"; import reactPlugin from "eslint-plugin-react"; import eslintPluginImportX from "eslint-plugin-import-x"; export default [ js.configs.recommended, ...tailwind.configs["flat/recommended"], ...reactPlugin.configs.flat.recommended, eslintPluginImportX.flatConfigs.recommended, ];
DEV Community
dev.to › aolyang › eslint-9-flat-config-tutorial-2bm5
ESLint 9 Flat config tutorial - DEV Community
August 5, 2024 - When we start a new project, syntax check and style format is important but not easy to config. That is because, before ESLint 9, it had many conflicts between IDE/Editor, prettier, and ESLint. Now ESLint9 disabled & deprecated some confict rules, and enabled Flat config as default.
GitHub
github.com › vercel › next.js › discussions › 49337
How to use new "flat config" approach in Eslint? · vercel/next.js · Discussion #49337
Switching my projects to flat config was taking more time than it was worth. Beta Was this translation helpful? Give feedback. ... There was an error while loading. Please reload this page. Something went wrong. There was an error while loading. Please reload this page. ... There was an error while loading. Please reload this page. ... Something went wrong. There was an error while loading. Please reload this page. ... I have created a package eslint-config-next-flat (Source code) that is (roughly) a port of the eslint-config-next for FlatConfig.
Author vercel
ESLint
eslint.org › docs › latest › extend › plugin-migration-flat-config
Plugin Migration to Flat Config
We recommend prefixing older format configs with legacy-. For example, if your primary config is called recommended and is in flat config format, then you can also have a config named legacy-recommended that is the eslintrc config format. If you don’t want to update the config name, you can also create an additional entry in the configs object prefixed with "flat/" (for example, "flat/recommended").
Jmugliston
jmugliston.dev › blog › using-the-new-eslint-flat-config
Using the New ESLint Flat Config
April 29, 2024 - This example uses the FlatCompat#extends() method to insert the “standard” config into the flat config array. Importing plugins has also changed with the new config file. Previously, ESLint would use a string-based import system. The new format uses JavaScript objects, which means you can just use import / require statements to load plugins from external sources.
GitHub
github.com › eslint › eslint › issues › 19116
Change Request: Flat config extends · Issue #19116 · eslint/eslint
November 7, 2024 - In flat configs, extends will not trigger any file loading. Instead, it will allow string identifiers for configs contained in plugins as well as objects. Here's a simple example: import js from "@eslint/js"; export default [ { plugins: { js }, files: ["**/*.js"], extends: ["js/recommended"], rules: { "prefer-const": "off" } } ];
Published Nov 07, 2024
Nx
nx.dev › technologies › eslint › recipes › flat-config
Switching to ESLint's Flat Config Format
The generator will go through all the projects and convert their configurations to the new format. It will also convert the base .eslintrc.json and .eslintignore. Section titled “Correctness and best practices” · The purpose of this generator is to create a flat config that works the same way as the original JSON config did.
GitHub
github.com › eslint › eslint › issues › 18093
📈 Tracking: Flat Config support · Issue #18093 · eslint/eslint
December 13, 2023 - 👋 Hi all! With flat config stabilized and ESLint v9 on the horizon released!, many community plugins are adding native support for flat config. The Configuration Migration Guide provides docs on how to do that. This is a tracking issue o...
Published Feb 08, 2024
ESLint
eslint.org › blog › 2022 › 08 › new-config-system-part-2
ESLint's new config system, Part 2: Introduction to flat config
August 5, 2022 - We took all of the learnings from the previous six years of ESLint development to come up with a holistic approach to configuration that took the best of eslintrc and combined it with the way other JavaScript-related tools handled configuration. The result is something that hopefully feels familiar to existing ESLint users and is far more powerful than what was possible before. Docs: Read more about flat config system in the official documentation.
Top answer 1 of 5
34
I am using ESLint's flat-config using flat config with TypeScript. Here's what I think are the important parts of the config:
import ts from '@typescript-eslint/eslint-plugin';
import tsParser from '@typescript-eslint/parser';
import functional from 'eslint-plugin-functional';
import imprt from 'eslint-plugin-import'; // 'import' is ambiguous & prettier has trouble
languageOptions: {
parser: tsParser,
parserOptions: {
ecmaFeatures: {
modules: true
},
ecmaVersion: 'latest',
project: './tsconfig.json',
},
},
plugins: {
functional,
import: imprt,
'@typescript-eslint': ts,
ts,
},
rules: {
...ts.configs['eslint-recommended'].rules,
...ts.configs['recommended'].rules,
'ts/return-await': 2,
}
Take note that the ts plugin is there twice. The shared configs use the longer namespace, and I perfer using a shorter namespace.
2 of 5
13
This works for me but I still find the API to be rather verbose.
const tsPlugin = require("@typescript-eslint/eslint-plugin");
const tsParser = require("@typescript-eslint/parser");
const tsOverrideConfig = tsPlugin.configs["eslint-recommended"].overrides[0];
const tsRecommemdedConfig = tsPlugin.configs.recommended;
const files = ["**/*.ts", "**/*.tsx"];
module.exports = [
"eslint:recommended",
{
files,
linterOptions: {
reportUnusedDisableDirectives: true,
},
languageOptions: {
parser: tsParser,
},
plugins: {
"@typescript-eslint": tsPlugin,
},
},
{ files, rules: tsOverrideConfig.rules },
{ files, rules: tsRecommemdedConfig.rules },
];
GitHub
github.com › angular-eslint › angular-eslint › blob › main › docs › CONFIGURING_FLAT_CONFIG.md
angular-eslint/docs/CONFIGURING_FLAT_CONFIG.md at main · angular-eslint/angular-eslint
In other words, we don't want the same rules to apply on TypeScript files that we do on HTML/inline-templates. Therefore, our flat config will contain two entries, one for TS, one for HTML.
Author angular-eslint