【发布时间】:2021-05-04 14:48:53
【问题描述】:
我正在尝试将 eslint 配置为使用 eslint-config-react-app 作为基础,并在此基础上指定一些特定规则。其中一个规则是no-use-before-define,我在下面的简单示例中尝试了这一点,以检查规则是否按预期工作:
const a = () => {
b();
};
const b = () => {};
a();
如果我像这样设置我的 .eslintrc.json,那么规则会按预期工作:
{
"parserOptions": {
"ecmaVersion": 2020
},
"rules": {
"no-use-before-define": "error"
}
}
2:5 error 'b' was used before it was defined no-use-before-define
但是,如果我包含"extends": "react-app",则不会发现任何 eslint 错误:
{
"extends": "react-app",
"parserOptions": {
"ecmaVersion": 2020
},
"rules": {
"no-use-before-define": "error"
}
}
如果我故意引入会导致另一个违反 eslint 的更改 - 例如删除 a(); 一个结尾,然后 that 被发现,但不是 no-use-before-define 违规:
1:7 warning 'a' is assigned a value but never used no-unused-vars
直观地说,我希望 .eslintrc.json 中的任何规则在"extends" 中指示的配置之上应用,但似乎情况并非如此。
我在这里误解了什么?有没有办法扩展eslint-config-react-app 并且让no-use-before-define 规则正常工作?
【问题讨论】:
-
谢谢,但这不是我遇到的问题。我的问题是当我希望看到一个错误时缺少。我也没有使用@typescript-eslint afaik。
-
@typescript-eslint 存在于 peerDependencies 虽然github.com/facebook/create-react-app/blob/master/packages/…
-
也适用于
no-use-before-definegithub.com/facebook/create-react-app/issues/7325 -
@hendrixchord 那个 github 问题和我的不一样(正好相反),但它确实给了我解决这个问题所需的提示,所以谢谢。
标签: javascript eslint