首页 > 其他分享 >ESLint CLI 深度解析:配置选项与高效工作流(5)

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

时间:2024-12-01 20:57:58浏览次数:6  
标签:文件 CLI -- 指定 js eslint 解析 ESLint

CLI命令行工具

关于 CLI 命令行工具,我们在第一节课的时候就用到过一个:

eslint --fix . 

在官网,我们可以看到 CLI 命令行工具的基本格式为:

eslint [options] [file|dir|glob]*

我们先来看后面的 [file|dir|glob]* , 这个部分主要是用来指定 ESLint 应该检查哪些文件:

  • file:用于指定一个具体的文件名
eslint app.js # 使用 eslint 检查 app.js 这个文件
  • dir:指定一个目录
eslint src/ 
# 检查 src 目录下面的所有文件
  • glob:这个 glob 是一种模式,有点类似于正则表达式,专门用来匹配文件的路径,glob 模式下面可以使用一些特殊的字符( * ? [])来匹配文件名
eslint src/**/*.js
# 检查 src 以及下面所有子目录下的所有 js 文件
  • *:表示你可以指定多个文件或者目录或者 glob 模式

学习 CLI 命令行工具,主要是 options 这一块,这一块的配置选项是相当丰富的,这里我们对众多的 options 选项进行一个分类,然后每一类选择几个典型的命令来进行介绍。

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

基本配置

--no-eslintrc

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

eslint --no-eslintrc .
-c, --config

允许我们指定配置文件的路径

eslint -c ~/my-eslint.json file.js

~ 在类 Unix 系统里面表示用户根目录

--env

该配置项允许我们指定一些环境,当指定了具体的环境之后,那么就会预设一些该环境下才会有的全局变量。

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

在上面的 CLI 命令中,指定了 browser 以及 node 环境,指定了这两个环境之后,就会预设一些 window、process 之类的全局变量

--ext

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

eslint . --ext .ts # 检查 ts 文件
eslint . --ext .js --ext .ts # 检查 js 和 ts 文件
eslint . --ext .js,.ts # 和上面一样,换了一种写法
--global

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

eslint --global jQuery:true .
--parser

这个选项允许你指定一个自定义的 JavaScript 解析器。默认情况下,ESLint 使用 Espree,但是你可以使用其他的解析器。例如,你可以使用 Babel-ESLint,如果你的项目中使用了 BabelESLint,你可以使用它来解析你的 JavaScript 代码。

特殊规则和插件的配置

--plugin

该配置项是用来指定要使用插件。

eslint --plugin jquery file.js # 指定使用 jquery 这个插件
--rule

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

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

自动修复

--fix

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

--fix-type

允许你指定修复问题的类型,对应的值有 problem、suggestion、layout、directive

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

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

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

忽略文件

--ignore-path

很明显是指定忽略文件的路径。

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

 eslint --ignore-path tmp/.eslintignore file.js
--no-ignore

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

eslint --no-ignore .
--ignore-pattern

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

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

输出

-o, --output-file

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

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 在做检查的时候速度会更快

eslint --cache .
--cache-location

我们可以指定缓存文件的位置

eslint "src/**/*.js" --cache --cache-location "/Users/user/.eslintcache/"
--cache-strategy

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

  1. metadata:这是默认值,使用文件的元数据(修改时间和文件大小)来判断文件是否发生了变化
  2. content:基于文件的内容来判断文件是否发生变化
eslint "src/**/*.js" --cache --cache-strategy content

标签:文件,CLI,--,指定,js,eslint,解析,ESLint
From: https://blog.csdn.net/weixin_53961451/article/details/144173802

相关文章

  • Esbuild代码调用深度解析:Build API与Transform API的奥秘 (3)
    esbuild提供了丰富的API,允许你在Node.js代码中进行项目打包和代码转换。以下是esbuild的主要API和一些示例用法。项目打包——BuildAPIesbuild的BuildAPI主要用于项目打包,提供了build、buildSync和context三个方法。1.基本配置在项目根目录下创建esb......
  • ESLint v9.0.0 新纪元:探索 eslint.config.js 的奥秘 (4)
    从v9.0.0开始,官方推荐的配置文件格式是eslint.config.js,并且支持ESM模块化风格,可以通过exportdefault来导出配置内容。//eslint.config.jsexportdefault[{rules:{semi:"error","prefer-const":"error"}......
  • 深入学习指针!!!史上最全指针解析!!!!!(2)
    文章目录1.const修饰指针1.1const修饰指针1.2const修饰指针变量2.野指针2.1野指针成因2.1.1指针未初始化2.1.2指针的越界访问2.1.3指针指向的空间释放2.2如何规避野指针2.2.1指针初始化2.2.2小心指针越界2.2.3指针变量不再使用时,及时置NULL,指针使用之前检查有效性2......
  • ECLIPSE:通过视觉提示调整进行泛视分割的有效连续学习
    ECLIPSE:通过视觉提示调整进行泛视分割的有效连续学习   泛视分割结合了语义分割和实例分割,是一项前沿的计算机视觉任务。尽管最近在深度学习模型方面取得了进展,但现实世界应用程序的动态特性需要持续学习,其中模型随着时间的推移适应新类(可塑性),而不会忘记旧类(灾难性遗忘)。当前......
  • Java 方法重载:原理、应用与要点解析
            在Java编程领域,方法重载是一项极具特色且实用的机制,它为代码编写带来诸多便利,极大地提升了程序设计的灵活性与可读性。一、方法重载基本概念        Java允许在同一个类里存在多个同名方法,不过要求形参列表存在差异。以MyCalculator类为例,其定义......
  • 大语言模型---Llama不同系列的权重参数文件提取;Llama-7B权重文件提取;Llama-8B权重文件
    文章目录1.概要2.Llama-7B权重文件提取3.Llama-8B权重文件提取4.主要代码功能解析1.概要Llama系列模型(Meta发布的大语言模型)在开源社区广受欢迎,不同版本(前文已经介绍过7B和8B的区别,详情请点击链接)在应用场景和硬件需求上各有不同,其权重文件的提取方式也略有差......
  • 通过自定义feignclient 的LoadBalancerFeignClient实现灵活的负载均衡策略
    通过自定义feignclient的LoadBalancerFeignClient或IRule能实现完全自定义的负载均衡策略,本文主要是通过实现自定义的LoadBalancerFeignClient而达到自定义的负载均衡策略示例代码实现如下:packagecn.zuowenjun.demo;importcom.netflix.loadbalancer.Server;importfeign......
  • java的Webclient对象怎解解析400状态码
    在Java中使用WebClient处理400状态码,可以通过检查响应状态并根据状态码进行相应的错误处理。以下是几种处理400状态码的方法:使用onStatus方法判断和处理错误:你可以使用WebClient的retrieve()方法链中的onStatus方法来检查响应状态码。如果状态码为400,你可以打印错误信息......
  • 【K230 CanMV】图像识别-摄像头获取图像 Sensor 函数全解析
    引言:随着图像处理技术的不断发展,摄像头在嵌入式系统中的应用越来越广泛,尤其是在智能监控、自动驾驶、机器人视觉等领域。K230作为一款高性能的嵌入式处理器,提供了强大的图像处理能力,支持多种类型的摄像头接入与图像采集功能。在使用K230进行图像识别应用时,了解和掌握图像传感......
  • Java的现代应用与未来趋势:全面解析2024年技术生态
    引言:Java的演进与现代化技术方向Java的历史与演变​Java自1995年由SunMicrosystems发布以来,已经发展成世界上最流行的编程语言之一。它的设计目标是“WriteOnce,RunAnywhere”(写一次,随处运行),依靠其平台无关性(JVM)得到了广泛应用。随着技术的不断演变,Java语言的版本也......