ESLint代码检查系列 ——入门篇

简介

ESLint是一个用于静态代码分析的工具,能做代码规范的检查、错误提示、代码的自动修复。

  1. 对代码进行静态分析和检测:代码风格是否一致语法错误潜在逻辑错误
  2. 集成到开发环境中,例如编辑器或构建工具,以便在编码过程中提供即时反馈和建议,提高开发人员代码质量、减少潜在的错误,并遵循一致的编码风格

基本工作原理

  1. parser:使用解析器将代码转为AST(抽象语法树)
  2. extends、plugins、rules:获取所有插件或用户定义的规则,遍历AST并执行规则
  3. 遍历完后, 将收集到的错误提示和修复
Created with Raphaël 2.3.0 初始代码 解析器 将代码转为AST 执行规则 错误提示、修复 规范的代码

属性说明

  1. root:eslint配置是否可以向父级查找,true:不能

  2. env:指定启用的环境,node:启用node环境,必须启用node环境,否则会报 ‘module’ is not defined

  3. parser:指定要使用的解析器,会把源代码转换成抽象语法树,然后再对每个节点做eslint的校验。默认解析器为espree,官方推荐的解析器中与ESLint兼容的有:

    • 检查 js/ts 语法:esprima(不推荐)、babel-eslint、@typescript-eslint/parser(支持ts文件解析的插件)
    • 检查非 js/ts 语法:vue-eslint-parser(支持vue文件解析的插件)
  4. parserOptions:解析器配置,常用来负责解析es语法,默认支持es5

    • sourceType - 设置为 script(默认) 或 module(如果你的代码是 ECMAScript 模块),webpack模块打包需要把sourceType设置成为module
    • ecmaVersion:按照 ecma 哪个版本语法做检查。例如:设置为6则支持es6语法,但不支持新的 ES6 全局变量或类型,如Set,需要在env属性设置es6: true就支持新的 ES6 全局变量和类型了
  5. plugins:是一个npm包,只是声明插件里的规则,但是这些规则并没有生效,需要在rules里配置才会生效。

    • eslint-plugin-prettier: 把 prettier 的能力赋给 eslint,让 eslint 拥有和 prettier 一样的代码格式化能力,使用时可以省略 eslint-plugin 前缀,"plugins": ["prettier"]
    • eslint-plugin-vue:使用ESLint来检测Vue文件,"plugins": ["vue"]
    • @typescript-eslint/eslint-plugin:提供 TypeScript 相关的检查和规则。
  6. extends:用于继承插件里的规则并生效,不需要再去rules里配置,每个配置继承它前面的配置。有3种规则配置:

    • eslint内置规则配置:实际配置文件在 eslint/conf 中可以找到
      • eslint:recommended:继承Eslint中推荐的规则
      • eslint:all:继承Eslint中所有的核心规则
    • 自定义的规则配置:(以eslint-config-开头的npm包),如eslint-config-standard,是个流行的风格指南
    • 插件中提供的规则配置:(以eslint-plugin-开头的npm包),如eslint-plugin-vue,使用ESLint来检测Vue文件,可写plugin:vue/essentialplugin:vue/recommendedplugin:vue/vue3-recommended
  7. rules:自行配置代码规范,会覆盖基础配置,常用规则说明:

    • 关闭规则:off 或 0
    • 开启规则,警告:warn 或 1
    • 开启规则,错误:error 或 2
  8. globals:定义全局变量,否则会报 no-undef 错误。

  9. overrides:设置某些文件,禁用部分检查,如files匹配到的那些文件,均关闭 no-unused-expressions 检查。

    “overrides”: [ {
    “files”: [“-demo.ts",".spec.ts”],
    “rules”: { “no-unused-expressions”: “off” }
    } ]

使用

  1. 安装依赖包eslintyarn add eslint -D
  2. 新建配置文件.eslintrc.js
  3. 在scripts中新增lint命令:"lint": "eslint ./src/**/*.ts"
  4. 在终端中执行npm run lint,即可自动检查代码中的错误,可加上参数 --fix 进行自动恢复 "lint-fix": "eslint --fix ./src/**/*.ts"

参考案例

vue3项目
其他项目案例后续再补充

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-30 23:38:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-30 23:38:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-30 23:38:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-30 23:38:01       20 阅读

热门阅读

  1. ERD Online后端源码:构建你的数据建模引擎️

    2024-01-30 23:38:01       43 阅读
  2. Python计算机二级/Python期末考试 刷题(一)

    2024-01-30 23:38:01       26 阅读
  3. BGAD文章复现笔记-1

    2024-01-30 23:38:01       37 阅读
  4. CSS Transition:变魔术的艺术

    2024-01-30 23:38:01       29 阅读
  5. Shaastra CTF 2024

    2024-01-30 23:38:01       41 阅读
  6. Linux的中断和中断处理

    2024-01-30 23:38:01       33 阅读
  7. pgsql中with子句和直接查询差别

    2024-01-30 23:38:01       35 阅读
  8. Python爬虫库推荐

    2024-01-30 23:38:01       30 阅读
  9. LeetCode 第二十一天

    2024-01-30 23:38:01       38 阅读
  10. Compose | UI组件(十一) | Spacer - 留白

    2024-01-30 23:38:01       35 阅读