【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-* 的区别的主要内容,如果未能解决你的问题,请参考以下文章
必须使用 import 来加载 Babel 模块中的 ES 模块 NODEJS 错误