Reputation: 4352
Somehow after updating Babel
from 6
to 7
my eslint
started giving such a warning in node_modules
:
So, from my understanding node_modules
folder is not ignored and that is why the issue popped up. So, reading through eslint
docs:
https://eslint.org/docs/user-guide/configuring
I tried adding "ignorePatterns": ["node_modules/"],
to the .eslintrc
file but got an error:
Module build failed: Error: ESLint configuration in /Users/vlasenkona/Desktop/gris-seqr2/ui/.eslintrc is invalid: - Unexpected top-level property "ignorePatterns".
So, I tried creating .eslintignore
file and added there just node_modules/
but the warning stayed the same. How could I ignore the node_modules
folder? The versions of the packages I am using:
"eslint": "^5.16.0",
"babel-eslint": "^9.0.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-import-resolver-babel-module": "^5.1.2",
"eslint-loader": "1.9.0",
"eslint-plugin-flowtype": "2.39.1",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-jsx-a11y": "^6.1.0",
"eslint-plugin-react": "^7.10.0",
"eslint-plugin-react-perf": "^2.0.8",
The .eslintrc
looks like that:
{
"extends": [
"airbnb",
"plugin:react-perf/recommended"
],
"parser": "babel-eslint",
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
},
"env": {
"mocha": true,
"es6": true,
"browser": true,
"node": true,
"jest": true
},
"settings": {
"import/resolver": {
"babel-module": {}
}
},
"rules": {
"semi": [2, "never"],
"no-shadow": ["error", { "allow": ["error"] }],
"arrow-body-style": 0,
"func-names": 0,
"function-paren-newline": 0,
"max-len": 0, //["warn", 80, 2],
"no-console": 0,
"no-multi-str": 0,
"no-param-reassign": 0,
"no-plusplus": 0,
"brace-style": 0,
"object-curly-newline": 0,
"padded-blocks": 0,
"react/jsx-first-prop-new-line": 0,
"react/jsx-wrap-multilines": 0,
"react/prefer-stateless-function": 0,
"react/sort-comp": 0, // more freedom in arranging class functions
"import/prefer-default-export": 0,
"react/forbid-prop-types": 0,
"no-class-assign": 0,
"react/jsx-filename-extension": [ 1, { "extensions": [".js", ".jsx"]} ],
"react/require-default-props": 0,
"react/require-optimization": 2,
"react/jsx-max-props-per-line": 0,
"react/jsx-no-target-blank": 0,
"spaced-comment": 0,
"jsx-a11y/iframe-has-title": 0,
"jsx-a11y/tabindex-no-positive": 0,
"jsx-a11y/click-events-have-key-events": 0,
"jsx-a11y/anchor-is-valid": 0
}
}
Update
I tried adding the following to newly created .eslintignore
:
node_modules/*
./node_modules/**
**/node_modules/**
But neither works. Interestingly enough, if I open ./node_modules/draftjs-md-converter/dist/index.js
and put at the very beginning and end of the file /*eslint-disable */
the warning still remains, so maybe it is not an eslint
problem: just totally misleading warning?..
Upvotes: 75
Views: 100289
Reputation: 7558
I had the following script in my package.json
:
"scripts": {
"lint": "eslint **/*.ts",
}
It turns out that my shell was expanding the glob, so it passed all .ts
files as arguments to eslint
(including the ones in node_modules
), causing the ignore rules of eslint
to not be applied.
I fixed it by changing the script to pass the glob to eslint rather than expanding it:
"scripts": {
"lint": "eslint '**/*.ts'",
}
Upvotes: 4
Reputation: 2050
For me, it was my node version. I was running 14 and eslint
server was running on 16. This caused eslint
to lint all of my node modules.
If you're using nvm
, switch to a newer node:
nvm use 18
You can see the ESLint node server version in your IDE using the ESLint: Show Output Channel
command.
Upvotes: 5
Reputation: 59
Edit: I shouldn't have had a second node_modules folder in the first place, it works with using only the main folder now
Ignoring node_modules/
in the .eslintignore file in the root folder worked for me.
node_modules/*
did not, it caused "An unhandled exception occurred: Failed to load config "airbnb" to extend from." or similar errors when linting the sub-project.
Our project structure looks like this:
Upvotes: 6
Reputation: 987
In my case, ESLint (v7.8.1) was ignoring node_modules
directories properly, but not my dist
directory. I added this to .eslintignore
:
client/dist/
and that resolved the issue.
Upvotes: 16
Reputation: 11
I've got the same problem. Solution: Make sure your file ".eslintrc" is in the root directory of your project. Where is package.json, node_modules and other things. Good luck.
Upvotes: 1