【Eslint配置】 eslint-config-* 和 eslint-plugin-* 的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Eslint配置】 eslint-config-* 和 eslint-plugin-* 的区别相关的知识,希望对你有一定的参考价值。

参考技术A 应该有很多同学在配置 eslint文件 的时候,会有这样的疑问,为什么每种校验模块包要分成 config/plugin 两个版本,并且有时候在 plugins 引入了插件,还可以再以extends方式去使用插件,既然插件这么全能,为何要有 eslint-config-* 呢?

你会发现就是一个简单的 .eslintrc 对象,再往它 —> 继承的文件 里去看

是不是很神奇,继承链的顶端忽然之间就没那么神秘了。其实就是一个 常规的 .eslintrc 文件,那我们可以理解最终被 eslint 所识别的配置文件就是所有继承文件的属性合并,并且子类覆盖父类。

以上我们可以看出, allRules 包含了所有的规则,并且所有的规则逻辑都是通过 require 的形式获取到真正的校验逻辑。

至此,真相大白 ->

个人观点:
主动去添加重复的plugin名这一行为的好处大概就是可以让不了解 eslintrc继承结构 的人能从项目目录下更直观的了解该项目所依赖的插件,可以有据可查地在rules里手动去修正一些自己觉得不符合科学的规则。

(ESLint)在 VS 2017 反应项目中找不到模块“eslint-config-react-app”

【中文标题】(ESLint)在 VS 2017 反应项目中找不到模块“eslint-config-react-app”【英文标题】:(ESLint) Cannot find module 'eslint-config-react-app' in VS 2017 react project 【发布时间】:2019-04-19 00:06:28 【问题描述】:

我们在 Visual Studio 2017 中有一个 react 应用程序,它为项目中的每个 .js 文件显示以下警告消息“(ESLint)找不到模块 'eslint-config-react-app'...”。我们安装了 react-scripts 包,该包也包含在 eslint-config-react-app 包中。我们尝试将其安装在本地项目 package.json 以及全局包中。

无论我们做什么,这些错误都不会消失。

更新: 项目文件夹结构为:

项目 客户端应用 公开 源代码 packages.json 控制器 页数

我已尝试将以下内容放入 packages.json 文件中:

"eslintConfig": 
   "extends": "react-app"

我尝试在 ClientApp 文件夹中创建一个 .eslintrc 文件,并移动到项目根文件夹,使其与 ClientApp 文件夹位于同一级别。在文件中我有以下内容:


    "extends": "react-app"

我还在 .eslintrc 文件中尝试了以下内容:


  "extends": [
    "eslint:recommended",
    "plugin:react/recommended"
  ]

当我这样做时,我的错误变为“

(ESLint) ESLint 遇到解析错误。

【问题讨论】:

【参考方案1】:

我找到了解决方案。我删除了所有 .eslintrc 文件,还删除了 packages.json 文件的 ESLint 配置部分。然后我进入 Visual Studio 中的 Tools...Options 并搜索 ESLint。然后我点击了“重置全局.eslintrc”按钮。最后,我关闭并重新打开了解决方案,现在一切正常。

【讨论】:

【参考方案2】:

这发生在我身上,但它是:

Error: Failed to load plugin react: Cannot find module 'eslint-plugin-react'

我的网站根目录中没有 .eslintrc !!!所以我加了一个(有很多例子说明它必须包含)

【讨论】:

我用更多细节更新了帖子。还是没有运气。

以上是关于【Eslint配置】 eslint-config-* 和 eslint-plugin-* 的区别的主要内容,如果未能解决你的问题,请参考以下文章

成功运行 travis 后,语义发布不发布

必须使用 import 来加载 Babel 模块中的 ES 模块 NODEJS 错误

Angular Eslint 配置未扩展 Project Eslint 配置

vs工程配置eslint检测环境

VSCode配置RN之ESLint

ESlint配置案例及如何配置