(ESLint) 未找到规则“re​​act/jsx-sort-prop-types”的定义

Posted

技术标签:

【中文标题】(ESLint) 未找到规则“re​​act/jsx-sort-prop-types”的定义【英文标题】:(ESLint) Definition for rule 'react/jsx-sort-prop-types' was not found 【发布时间】:2019-02-09 00:55:52 【问题描述】:

我刚刚更新了我的 VS 2017(版本 15.8.2)。现在,当我打开 any .js 文件时,我在文件的第一行看到一条红色波浪线...这是警告消息:

找不到规则“re​​act/jsx-sort-prop-types”的定义

当我将鼠标悬停在波浪线上时:

我不知道为什么突然出现这么多 .js 错误?

【问题讨论】:

【参考方案1】:

ESLint(这是一个 JS 代码分析器)在 VS 2017 中默认启用 - 来自version 15.8:

ESLint 支持:此版本中重新实现了 ESLint 支持。 因此,Visual Studio 现在将在您编辑时对 javascript 文件进行 lint。 ESLint 已更新为默认使用 ESLint 4,但如果您的项目有 ESLint 的本地安装,它将使用该版本。你 可以通过取消选中“启用”轻松地在 VS 中全局禁用 ESLint 在所示位置的“工具/选项”对话框中设置 ESLint 下面。

如果你想使用 ESLint 编码指南,那么你需要做的就是重置全局 .eslintrc 文件。在 VS 中转到:

工具 > 选项 > 文本编辑器 > JavaScript/TypeScript > Linting

然后点击重置全局.eslintrc按钮:

重置 .eslintrc 将修复您的设置文件(它导入反应插件)

注意VS自带的默认插件是react plugin,这并不代表你使用的是react.js,而是代表你使用的是react编码指南。

还要注意,上述步骤将 react 插件导入设置,并正确设置 ESLint,但您可能仍然会遇到很多 .js 样式错误,因为您可能还没有遵循反应编码指南或您项目中包含的某些 .js 库不遵循该指南(如果 .js 文件未在 VS 中打开,则可能不会出现 linting 错误,打开几个 .js 文件并重新编译以获取 linting 错误)。

例如,我在jquery.validate.js 上遇到了一些样式错误。您可能不想更改 jquery.validate.js 代码,请参阅 this question 了解如何配置 ESLint 以忽略某些 .js 文件。


如果您不想对项目进行所有修改,可以禁用 ESLint,如上图所示。

如果您想使用不同的插件,这是预定义插件的full list。

【讨论】:

好的,但为什么它会在每个 js 文件上显示与反应相关的问题?我的项目不使用反应。我从来没有碰过它。应该能够使用 ESLint 而不会看到这样的无用消息。 @Valuator,好点子。我已经更新了我的答案...请注意,react 表示您正在使用 react 编码指南...这并不意味着您正在使用 react.js。 看来VS实现不支持这些定义,我刚刚打开.eslintrc文件,向下滚动并将VS消息框中显示的规则设置为0,关闭并重新打开VS和错误停止。示例:“react/jsx-sort-prop-types”:0【参考方案2】:

这只是意味着 ESLint 与 .eslintrc 文件中的配置不匹配。

单击“重置全局 .eslintrc”按钮将修复它。它将重置您的 .eslintrc 文件以匹配安装在 VS 上的 ESLint 所需的配置。

【讨论】:

对于那些正在寻找路径的人:在 Visual Studio 顶部菜单上关注:Tools > Options > Text Editor > JavaScript /TypeScript > Linting > General

以上是关于(ESLint) 未找到规则“re​​act/jsx-sort-prop-types”的定义的主要内容,如果未能解决你的问题,请参考以下文章

禁用未找到 eslint 规则的警告消息

(ESLint) 未找到规则“re​​act/jsx-sort-prop-types”的定义

未找到规则“re​​act-hooks/exhaustive-deps”的定义

是否有用于检测未使用的类属性的 eslint 规则?

在哪里可以找到“eslint:recommended”的规则定义?

“未找到ESLint配置”错误