How to fix eslintrc The file does not match your project config? How to fix eslintrc The file does not match your project config? typescript typescript

How to fix eslintrc The file does not match your project config?


Update your eslintrc.js to include:

ignorePatterns: ['.eslintrc.js']


What is this error about?

The annoying error is basically saying the file eslintrc.js itself is both:

  1. Found by ESLint, but
  2. Doesn't match the list of files it's supposed to lint

So, ESLint doesn't know what to do and freaks out!

Note that while this file doesn't include your codes, you should decide whether you want this file to be linted (e.g. for tab vs space, or double quote vs single quote,) or not.


What should be done?

You can omit either (1) or (2) from the conflicting situation above.

Solution 1: Tell ESLint to ignore the file

It's easier. Just add the name of the file (e.g. .eslintrc.js) to .eslintignore.

You can also see case 1.3 of my answer, here for different ways it can be done.

  • Pros: Quick. Easy. Painless.
  • Cons: The formatting of this file can become inconsistent with other files in terms of tab/space or quotes style.

Solution 2: Tell ESLint to lint this file (Preferred)

Typescript-ESLint gets the list of files to include from tsconfig.json via parserOptions > project.

So, you can either add the file to the existing tsconfig.json (Solution 2.1) or create a secondary tsconfig.eslint.json to include files like this, that you want to be linted by typescript-eslint, but not necessarily processed by the Typescript compiler.

  • Pros: This file, and other similar .js configs will also be included for lining and keeping everything consistent.
  • Cons: You might not want these configs files to be linted. Also, it takes a bit extra work anyway.

Solution 2.1: add it to the existing tsconfig.json

// in tsconfig.json ...    "include": [        ".eslintrc.js",        // ...    ]

Solution 2.2: add it to a separate tsconfig.eslint.json fileCreate a file names tsconfig.eslint.json with this content:

// new file: tsconfig.eslint.json{    "include": [        ".eslintrc.js"    ]}

and then inject it into eslintrc.js's parserOptions > project (yes, project accepts both a string, and an array of strings) :

// in eslintrc.js ...  parserOptions: {    project: [        resolve(__dirname, './tsconfig.json'),        resolve(__dirname, './tsconfig.eslint.json'),    ],  }

PS. This answer is very similar, I shall give some credit to that.


same error, this worked for me:https://github.com/nestjs/nest/issues/4900#issuecomment-669743374https://github.com/nestjs/nest/issues/4900#issuecomment-707330674

looks like config file must be named .eslintrc and use json format instead of .eslintrc.js and parserOptions.createDefaultProgram must be setted to true