前言:本文罗列了从入门到熟悉eslint过程中,作者本人获益较多的文档和文章,希望大家同样从中学会eslint的相关知识和使用方法。
如何实现自己的eslint-config包
eslint 配置概念及规则优先级
一个配置文件,一旦扩展,就可以继承另一个配置文件的所有特性(包括规则、插件和语言选项)并修改所有选项。 因此,存在三种配置,定义如下:
- 基本配置: 扩展的配置。
- 派生配置: 扩展基本配置的配置。
- 结果实际配置: 将派生配置合并到基本配置中的结果。
例子: A extends B , 则 B为基础配置 , A为派生配置, A&B 为结果实际配置
规则冲突处理规则:
- A extends B 时 ,A中的 rules 优先级较高
- extends 数组中,若不同的config配置包中存在相同规则,数组末尾的规则配置优先级高
eslint 重点字段
eslint 配置中重点字段:
- extends(字符串数组或字符串): 用于扩展 eslint-config-xxxx (定义eslint 规则的集合包)
- plugins(字符串数组或字符串): 用与扩展 eslint-plugin-xxxx (常用于定义一些扩展规则,例如 eslint-plugin-import. eslint-plugin-react)
-
parser (字符串): 配置一个解析器,将代码解析成 Eslint 能理解的形式,从而使eslint 可以进行代码校验。 (通过parserOptions 字段,可以向parser 设置某些信息)
与 Eslint 兼容的 parser 有
- Esprima eslint 默认的转换器
- @babel/eslint-parser babel-eslint 的升级版 (基于babel 做代码转换)
- @typescript-eslint/parser 基于 typescript 完成代码转换