Today I run eslint,two script
"lint-staged": "lint-staged",
"eslint": "eslint --ext .tsx,.ts --fix ./src -c .eslintrc.js",
When I run npm run eslint
// it's ok When I run npm run lint-staged
// it's wrong
lint-staged's result;
> lint-staged
❯ Running tasks for src/**/*.tsx
✖ eslint --fix [FAILED]
◼ git add
✖ eslint --fix :
Oops! Something went wrong! :(
ESLint: 7.10.0
Error: Error while loading rule '@typescript-eslint/dot-notation': You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.
Occurred while linting /Users/***/components/BrowserInfo/Index.tsx
at Object.getParserServices (/Users/fugang/workspace/xinao/channel-desk/node_modules/_@typescript-eslint_experimental-utils@4.3.0@@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js:26:15)
In package lint-staged
What happend?
"lint-staged": {
"src/**/*.tsx": [
"eslint --fix -c .eslintrc.js",
"git add"
]
},
You have to add the following config to your .eslint.json file
{
"parserOptions": {
...
"project": ["path/to/your/tsconfig/file"]
...
},
}
In case anyone outhere using .eslintrc.yml
can use following to fix above issue
extends:
- airbnb-typescript
parserOptions:
project:
- tsconfig.json
PS: tsconfig.json
is in root folder, change it to match your location in case its not in root folder.
This is what I ended up putting in my.eslintrc.json:
module.exports = {
...
parserOptions: {
parser: '@typescript-eslint/parser',
project: './tsconfig.json',
tsconfigRootDir: __dirname,
},
};
It may have been that the project needed to be ./tsconfig.json
instead of tsconfig.json
. My tsconfig file is in the project root.
And this brought up some more errors linting things like babel config so I created an .eslintignore
file and added those in there:
.eslintrc.js
ios/
android/
*.config.js
This solved all my issues.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.