当前位置:网站首页>格式检查工具eslint
格式检查工具eslint
2022-04-21 06:18:00 【cornivores】
eslint是什么?
eslint是一个用于报告语法格式是否符合规范的工具,目的是为了提高代码的可读性和可维护性,它的原理是用AST去评估代码格式。特性是具有高可扩展性(可以自行添加规则)、完全可插入性(关于eslint的规则可以应用在多个地方)。
- 例如执行
npm install eslint命令安装后,package.json下的devDependencies下会有eslint

- 在vscode中的扩展商店里会有eslint插件

- 对于gitlab的远端格式校验,则是运用gitlab ci runner里的eslint校验
那么package.json下的eslint、vscode里的eslint和ci runner里的eslint有什么区别?
首先,package.json里面的eslint仅适用于该package.json所属项目,这种方式应用于只是想局部引用eslint校验的情况(即仅仅是想在单个项目中引用格式校验)。
其次来看vscode里的eslint和ci runner里的eslint!
项目的代码规范校验通常由两部分构成:
- 基于git 钩子的校验
- webpack中的eslint-loader校验器
用户安装了对应依赖,启动项目会触发webpack中的校验器,提交代码会触发git 钩子中设置的校验器,在此时,提交至远端的代码格式一般是安全的。代码格式能够满足校验规则的条件是安装了相应依赖后启动项目或执行提交操作,因此也会有无法触发校验器的盲区。具体分为以下两种情况:
-
不安装包(不下载node_modules)的情况
这种情况下webpack和eslint依赖不存在,对应的两个校验器本身也就不存在。从而使得推向远端的代码可能存在代码格式错误问题,为了防止这样的问题,需要gitlab中ci runner里的eslint开启远端的eslint校验。 -
安装了包,但是不启动不提交的情况
这种情况下eslint和webpack依赖安装了,项目没有启动,因此eslint-loader不触发校验。没有进行提交,因此不触发git钩子,没有触发eslint校验器。为了在本地也能够知道代码是否符合eslint规范,需要使用vscode里的eslint plugin,这个插件基于AST提供了本地校验的方法,安装完这个插件以后,会自动检测项目中js和jsx文件是否有不符合eslint规范的代码。
这时可以执行一些命令,例如按照.eslintrc.js(这个文件是在安装完插件后自动生成的,默认有一套规则,后续可以在这基础上添加自己的规则)配置规则自动改正demo.js中出现的不符合eslint规范的代码:eslint demo.js --fix在vscode想要更方便的、不使用命令就能做到自动修复以及对多种文件的检测,需要在vscode首选项中的设置进行配置,每次保存文件的时候就可以根据.eslintrc.js配置规则来对多种类型的文件进行格式校验以及做一些简单的修复。
vscode里eslint plugin的自动化检测和简单的修复该怎么配置?
-
打开vscode里的设置

-
点开json形式下的设置

-
以下是eslint一些配置方式(在原有配置后面添加):
(1) 一组语言标识符,指定要对其进行验证的文件,默认只有"javascript", "javascriptreact"两项,即仅对js与jsx文件进行eslint校验,如果想要对更多的文件进行eslint校验,需要手动配置,我的项目运用到了ts,tsx和vue类型文件,以下是我的配置,后面追加了ts,tsx和vue文件:
"eslint.validate": [ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue", ],(2) 下面的设置为包括 ESLint 在内的所有提供程序打开自动修复:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true },(3) 更多配置点这里
版权声明
本文为[cornivores]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_43408978/article/details/124098509
边栏推荐
猜你喜欢

什么是PaaS?平台即服务介绍

【ThreadX】ThreadX源碼閱讀計劃(二)
【ThreadX】H743ZI+LAN8720+ThreadX+NetX Duo移植

【KSZ8863】KSZ8863交换机芯片的信息汇总与打板验证结果

Qt中正则表达式的使用

Reproduce the 3D density function diagram in the top issue of SCI

applicationContext. How to solve the problem of XML becoming gray document

Write tweets for one year and share five commonly used writing software
![[WPF] notes](/img/7c/614538bd340b3f20c956d70b4a3ed8.png)
[WPF] notes

If I use Monet's color matching in scientific research pictures?
随机推荐
3. 事务和视图
【STM32 H7】H743各个内存块地址分布备忘
搭建自己的blog
Tensorflow example 3: recognition training of verification code pictures. Each picture has 4 letters
How to download and use the journal latex template
跨域问题-Allow-Origin header contains multiple values... but only one is allowed
如何防止SQL注入
毕业设计,课程环节学生成绩评价系统
3.bat中date命令问题
const关键字、变量、函数用const修饰
2、 3 [FPGA] how to light the LED
LEFT JOIN关联表中ON,WHERE后面跟条件的区别
vee-validate 验证
微服务架构下的数据库拆分
Tensorflow实例3: 验证码图片的识别训练,每张图片有4个字母
[ThreadX] ThreadX source code reading plan (II)
开放平台及其技术架构
Qt 添加外部字库ttf
【STM32】H743的25MHZ外部晶振下480MHz时钟的CubeMX配置图
uniapp中动态底部导航栏tabbar实现,权限管理