基本格式

CLI 命令行工具的基本格式为:

eslint [options] [file|dir|glob]*
  • file:指定一个具体的文件名
  • dir:指定一个目录
  • glob:是一种模式,有点类似于正则表达式,专门用来匹配文件的路径,glob 模式 下面可以使用一些特殊的字符(* ? [])来匹配文件名

options

这里我们对众多的 options 选项进行一个分类,然后每一类选择几个典型的命令来进行介绍。

基本配置

--no-eslintrc

忽略所有的配置文件,当使用这个 option 时,ESLint 只会使用内置的规则集来对匹配上的文件进行检查

-c--config

指定配置文件的路径

--env

指定一些环境,当指定了具体的环境后,就会预设一些该环境下才会有的全局变量。

eslint --env browser,node file.js
eslint --env browser --env node file.js

上面的 CLI 命令中,指定了 browser 和 node 环境,就会预设 windowprocess 之类的全局变量

--ext

指定要检查的文件的扩展名,默认情况下,ESLint 只检查 js 文件。

eslint . --ext .js,.ts
eslint . --ext .js --ext .ts

--global

定义全局变量。例如我们的项目使用到了 jQuery,但是 ESLint 是不认识的,所以就可以使用 global 来定义这个全局变量

eslint --global jQuery:true .

--parser

指定一个自定义的 JavaScript 解析器。默认情况下,ESLint 使用 Espree。

特殊规则和插件的配置

--plugin

用来指定要使用插件

--rule

指定检查的规则,一般来讲,检查规则是写到配置文件里。但是针对某些场景下单独的一两条规则要改变,可以使用这种方式

eslint --rule 'quotes: [error, double]' .

自动修复

--fix

表示自动修复,但是需要清楚,不是所有的问题 ESLint 都可以帮你修复。

--fix-type

允许指定修复问题的类型,对应的值有:

  • problem:修复代码中的潜在错误,这种类型的问题通常是代码错误,如果不修复,可能会导致程序运行错误。
  • suggestion:对代码应用改进性的修复,这种类型的问题通常不会导致程序错误,但修复它们可以改进代码,使代码更易读、更易维护,或更符合最佳实践。这些问题可能涉及到代码的优化、重构或者一些编程习惯的改进。例如,未使用的变量、复杂的表达式可以简化、不必要的代码重复等,都属于 suggestion 类型的问题。
  • layout:应用不改变程序结构(抽象语法树,AST)的修复,主要涉及到代码的格式和样式。这些问题不会影响代码的功能或语义,但是修复它们可以使代码更具可读性和一致性。例如,不正确的缩进、缺失的分号、超过设定长度的行等,都属于 layout 类型的问题。
  • directive:对内联指令(如 // eslint-disable)应用修复

上面的修复问题类型是可以同时指定多个的:

eslint --fix --fix-type suggestion --fix-type problem .

忽略文件

--ignore-path

指定忽略文件的路径。

所谓忽略文件,就是指在项目中可以创建一个 .eslintignore 的文件,该文件里面记录一些文件名或者目录名,ESLint 在进行代码检查的时候,会忽略这些匹配上的文件名或者目录下面的文件

--no-ignore

忽略所有的忽略指令。本来 .eslintignore 文件里面记录了 ESLint 在进行检查的时候要忽略的文件,当用了这个指令之后,相当于 .eslintignore 文件失效,里面记录的那些文件都要被 ESLint 检查

--ignore-pattern

简单来说,就是将原本应该写在 .eslintignore 里面的文件或者目录,写在了命令行里面

eslint --ignore-pattern "/lib/" --ignore-pattern "/src/vendor/*" .

输出

-o--output-file

允许将 ESLint 的检查报告输出到一个文件里面

eslint -o report.txt .

-f, --format

正常情况下,ESLint 的检查报告在控制台进行输出,这个指令可以配置输出的格式

  • stylish:默认的格式化选项。它以易于读取的方式显示 Linting 结果,对于每个文件,会列出所有的错误和警告,然后在下面显示一个摘要,包括总的错误和警告数量。
  • compact:这种格式更加简洁。它将每个错误或警告限制为一行,其中包括文件名、行号、列号和问题描述。这种格式适合那些希望尽可能节省空间的情况。
  • tap:Test Anything Protocol 的缩写,这是一个简单的文本格式,用于记录和通信测试结果。ESLint 会按照 TAP 规范来输出 Linting 结果。这种格式特别适合于 CI/CD(持续集成和持续部署)环境,因为很多 CI/CD 工具都支持解析 TAP 格式的输出。

缓存

--cache

在进行 ESLint 检查时,生成一个缓存文件 .eslintcache,缓存文件默认在当前目录下面,有了缓存文件之后,下一次 ESLint 在做检查的时候速度会更快

--cache-location

指定缓存文件的位置

--cache-strategy

指定生成缓存时的缓存策略,对应的策略值有两个:

  • metadata:默认值,使用文件的元数据(修改时间和文件大小)来判断文件是否发生了变化
  • content:基于文件的内容来判断文件是否发生变化