创建 React 应用程序 - 控制台 lint 警告与 eslintrc 不匹配

Create React App - console lint warnings don't match eslintrc

我遇到了一个奇怪的问题,我没有在其他地方看到任何提及。

默认情况下,Create React App 似乎会在 运行ning yarn start 时在终端中以及 Chrome 控制台中记录 lint 警告。都好。有道理,而且我看到过关于此功能是否应该存在以及它应该如何工作的讨论。

我的问题是这些警告似乎与我的 .eslintrc 设置完全不匹配!

例如,如果我 运行 yarn lint,其中 运行s eslint 使用我的设置,我会看到显示的警告 none当我启动我的应用程序时在控制台和终端中。

例如,我在 .eslintrc 文件中关闭了这条规则:

"radix": 0,

因此,当我 运行 yarn lint 时没有 radix 警告。

(只是为了回应下面的答案。我已经为这个特定的规则尝试了多种选择,包括 "as-needed"。但我想完全关闭这个规则,我显然已经完成了,因为 运行ning yarn lint 根本没有显示与 radix 相关的错误)。

但是当我启动应用程序时,我在控制台的黄色警告框中看到:

有人知道为什么我的 .eslintrc 文件在这里被忽略,以及如何让这些警告代表我设置的规则?

根据 docs,您应该通过 "always""as-needed"。后者应该禁用这些警告。

...
"radix": "as-needed",
...

编辑:根据此 source,您必须弹出 create-react-app 才能编辑 ESLint 设置。

可以将 EXTEND_ESLINT 标志添加到 .env 文件。

当设置为 true 时,扩展 eslint-config-react-app 的 ESLint 配置将被 eslint-loader 使用。任何设置为 "error" 的规则都将停止构建应用程序。

来源:https://create-react-app.dev/docs/advanced-configuration

您的 eslint 配置可以命名为 .eslintrc.json 并放在项目的根文件夹中。 其内容应如下所示(注意扩展字段):

{
  "extends": "react-app", //this extends statement is required
  "rules": {
    "radix": "as-needed"
  }
}

而放在根目录下的.env文件应该有如下一行:

EXTEND_ESLINT=true