基本格式
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 环境,就会预设 window
、process
之类的全局变量
--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
:基于文件的内容来判断文件是否发生变化