ESLint CLI 深度剖析:配置选项与高效工作流(5)

[复制链接]
发表于 2024-12-2 22:33:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
CLI下令行工具

关于 CLI 下令行工具,我们在第一节课的时候就用到过一个:
  1. eslint --fix .
复制代码
在官网,我们可以看到 CLI 下令行工具的基本格式为:
  1. eslint [options] [file|dir|glob]*
复制代码
我们先来看后面的 [file|dir|glob]* , 这个部分主要是用来指定 ESLint 应该检查哪些文件:


  • file:用于指定一个具体的文件名
  1. eslint app.js # 使用 eslint 检查 app.js 这个文件
复制代码


  • dir:指定一个目录
  1. eslint src/
  2. # 检查 src 目录下面的所有文件
复制代码


  • glob:这个 glob 是一种模式,有点类似于正则表达式,专门用来匹配文件的路径,glob 模式下面可以利用一些特殊的字符( * ? [])来匹配文件名
  1. eslint src/**/*.js
  2. # 检查 src 以及下面所有子目录下的所有 js 文件
复制代码


  • *:体现你可以指定多个文件大概目录大概 glob 模式
学习 CLI 下令行工具,主要是 options 这一块,这一块的配置选项是相当丰富的,这里我们对浩繁的 options 选项举行一个分类,然后每一类选择几个典范的下令来举行先容。


  • 基本配置
  • 特殊规则和插件的配置
  • 主动修复
  • 忽略文件
  • 输出
  • 缓存
基本配置

--no-eslintrc

告诉 ESLint 忽略所有的配置文件,当你利用这个 option 的时候,ESLint 只会利用内置的规则集来对匹配上的文件举行检查
  1. eslint --no-eslintrc .
复制代码
-c, --config

答应我们指定配置文件的路径
  1. eslint -c ~/my-eslint.json file.js
复制代码
  ~ 在类 Unix 系统里面体现用户根目录
  --env

该配置项答应我们指定一些情况,当指定了具体的情况之后,那么就会预设一些该情况下才会有的全局变量。
  1. eslint --env browser,node file.js
  2. eslint --env browser --env node file.js
复制代码
在上面的 CLI 下令中,指定了 browser 以及 node 情况,指定了这两个情况之后,就会预设一些 window、process 之类的全局变量
--ext

答应我们指定 ESLint 要检查的文件的扩展名,默认情况下,ESLint 只检查 js 文件。
  1. eslint . --ext .ts # 检查 ts 文件
  2. eslint . --ext .js --ext .ts # 检查 js 和 ts 文件
  3. eslint . --ext .js,.ts # 和上面一样,换了一种写法
复制代码
--global

该配置项答应我们界说全局变量。例如我们的项目利用到了 jQuery,但是这个 ESLint 是不认识的,所以这里我们就可以利用 global 来界说这个全局变量
  1. eslint --global jQuery:true .
复制代码
--parser

这个选项答应你指定一个自界说的 JavaScript 剖析器。默认情况下,ESLint 利用 Espree,但是你可以利用其他的剖析器。例如,你可以利用 Babel-ESLint,如果你的项目中利用了 BabelESLint,你可以利用它来剖析你的 JavaScript 代码。
特殊规则和插件的配置

--plugin

该配置项是用来指定要利用插件。
  1. eslint --plugin jquery file.js # 指定使用 jquery 这个插件
复制代码
--rule

该配置项就是指定检查的规则,一样平常来讲,检查规则是写到配置文件里面。但是针对某些场景下单独的一两条规则要改变,可以利用这种方式
  1. eslint --rule 'quotes: [error, double]' .
复制代码
主动修复

--fix

体现主动修复,但是必要主要,不是所有的题目 ESLint 都可以帮你修复。
--fix-type

答应你指定修复题目的类型,对应的值有 problem、suggestion、layout、directive


  • problem:修复代码中的潜伏错误,这种类型的题目通常是代码错误,如果不修复,大概会导致程序运行错误。
  • suggestion:对代码应用改进性的修复,这种类型的题目通常不会导致程序错误,但修复它们可以改进代码,使代码更易读、更易维护,或更符合最佳实践。这些题目大概涉及到代码的优化、重构大概一些编程习惯的改进。例如,未利用的变量、复杂的表达式可以简化、不须要的代码重复等,都属于 suggestion 类型的题目。
  • layout:应用不改变程序布局(抽象语法树,AST)的修复,主要涉及到代码的格式和样式。这些题目不会影响代码的功能或语义,但是修复它们可以使代码更具可读性和一致性。例如,不准确的缩进、缺失的分号、超过设定长度的行等,都属于 layout 类型的题目。
  • directive:对内联指令(如 // eslint-disable)应用修复
留意上面的修复题目类型是可以同时指定多个的
  1. eslint --fix --fix-type suggestion --fix-type problem .
复制代码
忽略文件

--ignore-path

很显着是指定忽略文件的路径。
所谓忽略文件,就是指在项目中可以创建一个 .eslintignore 的文件,该文件里面记载一些文件名大概目录名,ESLint 在举行代码检查的时候,会忽略这些匹配上的文件名大概目录下面的文件
  1. eslint --ignore-path tmp/.eslintignore file.js
复制代码
--no-ignore

忽略所有的忽略指令。本来 .eslintignore 文件里面记载了 ESLint 在举行检查的时候要忽略那鞋文件,当你用了这个指令之后,相当于你的 .eslintignore 文件失效了,里面记载的那些文件都要被 ESLint 检查
  1. eslint --no-ignore .
复制代码
--ignore-pattern

简单来说,就是将原本你应该写在 .eslintignore 里面的文件大概目录,写在了下令行里面
  1. eslint --ignore-pattern "/lib/" --ignore-pattern "/src/vendor/*" .
复制代码
输出

-o, --output-file

答应将 ESLint 的检查陈诉输出到一个文件里面
  1. eslint -o report.txt .
复制代码
在上面的配置中,ESLint 会将最终的检查结果陈诉输出到 report.txt 的文件中
-f, --format

正常情况下,ESLint 的检查陈诉在控制台举行输出,那么这个指令可以配置输出的格式


  • stylish”(默认):这是 ESLint 默认的格式化选项。它以易于读取的方式体现 linting 结果,对于每个文件,它会列出所有的错误和警告,然后在下面体现一个择要,包括总的错误和警告数量。
  • compact”:这种格式更加简便。它将每个错误或警告限制为一行,其中包括文件名、行号、列号和题目形貌。这种格式适合那些渴望尽大概节流空间的情况。
  • tap” 是一个代表 “Test Anything Protocol” 的缩写,这是一个简单的文本格式,用于记载和通讯测试结果。ESLint 会按照 TAP 规范来输出 linting 结果。这种格式特别适合于 CI/CD(连续集成和连续摆设)情况,因为很多 CI/CD 工具都支持剖析 TAP 格式的输出。
缓存

--cache

该配置项体现在举行ESLint检查的时候,生成一个缓存文件 .eslintcache,缓存文件默认在当前目录下面,有了缓存文件之后,下一次 ESLint 在做检查的时候速率会更快
  1. eslint --cache .
复制代码
--cache-location

我们可以指定缓存文件的位置
  1. eslint "src/**/*.js" --cache --cache-location "/Users/user/.eslintcache/"
复制代码
--cache-strategy

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

  • metadata:这是默认值,利用文件的元数据(修改时间和文件巨细)来判定文件是否发生了变革
  • content:基于文件的内容来判定文件是否发生变革
  1. eslint "src/**/*.js" --cache --cache-strategy content
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-7-13 00:19 , Processed in 0.074355 second(s), 28 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

快速回复 返回顶部 返回列表