启用eslint-react-hooks会关闭所有eslint规则

时间:2020-04-29 06:37:55

标签: eslint eslint-config-airbnb eslintrc

我正在尝试获取eslint的规则,但似乎不适用于我的设置(VSCode,CRA,airbnb,tslint,更漂亮)。

这是我的.eslintrc.json破译前:

react-hooks

这是我的{ "env": { "browser": true, "es6": true, "jest": true }, "extends": ["plugin:react/recommended", "airbnb", "prettier"], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": 2020, "sourceType": "module" }, "plugins": ["react", "@typescript-eslint"], "rules": { "react/jsx-filename-extension": [1, { "extensions": [".jsx", ".tsx"] }] } }

devDependencies

然后我尝试将以下内容添加到 "devDependencies": { "@testing-library/jest-dom": "^5.5.0", "@testing-library/react": "^10.0.3", "@testing-library/user-event": "^10.1.0", "@types/jest": "^25.2.1", "@types/node": "^13.13.4", "@types/react": "^16.9.34", "@types/react-dom": "^16.9.7", "@typescript-eslint/eslint-plugin": "^2.30.0", "@typescript-eslint/parser": "^2.30.0", "eslint": "^6.8.0", "eslint-config-airbnb": "^18.1.0", "eslint-config-prettier": "^6.11.0", "eslint-plugin-import": "^2.20.2", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-prettier": "^3.1.3", "eslint-plugin-react": "^7.19.0", "eslint-plugin-react-hooks": "^3.0.0", "prettier": "^2.0.5", "typescript": "~3.8.3" }, 中的extends

.eslintrc

我还尝试将"extends": ["plugin:react/recommended", "plugin:react-hooks/recommended", "airbnb", "prettier"], 放置在数组的另一个位置。无论我做什么,都会破坏所有其他皮棉规则,包括它自己的规则。

我还尝试将以下内容添加到"plugin:react-hooks/recommended"plugins

rules

当然,还有用于检查皮棉规则的测试代码:

"plugins": ["react", "react-hooks", "@typescript-eslint"],
"rules": {
  // ...
  "react-hooks/rules-of-hooks": "error",
  "react-hooks/exhaustive-deps": "warn"
}

编辑:忘记了,我也尝试在 const [a, b] = React.useState("Hey"); React.useEffect(() => { React.useMemo(() => {}, []); if (a) b("Yeppp"); if (props.what) console.log(props.what); exampleMethod(); }, []); const exampleMethod = () => {}; 中使用airbnb/hooks

extends

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,所以我在回答自己的问题。

eslint-plugin-react-hooks文档说如果使用Create React App,请确保直接在package.json中添加模块。
因此,解决方案是从eslint-plugin-react-hooks中删除devDependencies