Eslint 全解 - 实现自己的 eslint-config包

355 阅读2分钟

前言:本文罗列了从入门到熟悉eslint过程中,作者本人获益较多的文档和文章,希望大家同样从中学会eslint的相关知识和使用方法。

如何实现自己的eslint-config包

从 0 到 1 实现一个 eslint config package

如何创建可共享的eslint 配置

eslint 规则配置方法汇总

eslint 配置概念及规则优先级

配置文件的概念及规则优先级

一个配置文件,一旦扩展,就可以继承另一个配置文件的所有特性(包括规则、插件和语言选项)并修改所有选项。 因此,存在三种配置,定义如下:

  • 基本配置: 扩展的配置。
  • 派生配置: 扩展基本配置的配置。
  • 结果实际配置: 将派生配置合并到基本配置中的结果。

例子: A extends B , 则 B为基础配置 , A为派生配置, A&B 为结果实际配置

规则冲突处理规则:

  • A extends B 时 ,A中的 rules 优先级较高
  • extends 数组中,若不同的config配置包中存在相同规则,数组末尾的规则配置优先级高

eslint 重点字段

extends 配置方法

plugin 配置方法

plugin规则的配置方法

plugin 规则的规范

parser 配置方法

eslint 配置中重点字段:

  1. extends(字符串数组或字符串): 用于扩展 eslint-config-xxxx (定义eslint 规则的集合包)
  1. plugins(字符串数组或字符串): 用与扩展 eslint-plugin-xxxx (常用于定义一些扩展规则,例如 eslint-plugin-import. eslint-plugin-react)
  1. parser (字符串): 配置一个解析器,将代码解析成 Eslint 能理解的形式,从而使eslint 可以进行代码校验。 (通过parserOptions 字段,可以向parser 设置某些信息)

    与 Eslint 兼容的 parser 有

    1. Esprima eslint 默认的转换器
    1. @babel/eslint-parser babel-eslint 的升级版 (基于babel 做代码转换)
    1. @typescript-eslint/parser 基于 typescript 完成代码转换