ESLint 语法检验工具的使用


前言

在计算机科学中,lint 是一种工具的名称,它用来标记代码中,某些可疑的、不具结构性(可能造成 bug)的语句。它是一种静态程序分析工具,最早适用于 C 语言,在 UNIX 平台上开发出来。后来它成为通用术语,可用于描述在任何一种编程语言中,用来标记代码中有疑义语句的工具。今天介绍到的 ESLint,便是 JavaScript 20 多年的发展历程中主流程序分析工具之一。

ESLint

ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误。在许多方面,它和 JSLint、JSHint 相似,除了少数的例外。

  • ESLint 使用 Espree 解析 JavaScript。
  • ESLint 使用 AST(抽象语法树) 去分析代码中的模式。
  • ESLint 拥有丰富的 rules 规则,并支持自定义 rules。
  • ESLint 是完全插件化的。每一个规则都是一个插件并且你可以在运行时添加更多的规则。

一、安装

1. cmd 命令式安装

# 安装 eslint 模块
$ npm install eslint --save-dev

# 设置配置文件
$ ./node_modules/.bin/eslint --init

# 运行ESLint
$ ./node_modules/.bin/eslint yourfile.js

2. 编辑器式安装

打开 Vscode,找到扩展中心,搜索安装 eslint 插件即可。

二、配置方式

ESlint 被设计为完全可配置的,这意味着可以关闭每一个规则而只运行基本语法验证,或混合和匹配 ESLint 默认绑定的规则和自定义规则。有两种主要的方式来配置 ESLint:

  • Configuration Comments: 使用 JavaScript 注释把配置信息直接嵌入到一个代码源文件中。
  • Configuration Files: 使用 JavaScript、JSON 或者 YAML 文件为整个目录(处理你的主目录)和它的子目录指定配置信息。可以配置一个独立的 .eslintrc.* 文件,或者直接在 package.json 文件里的 eslintConfig 字段指定配置,ESLint 会查找和自动读取它们,再者,可以在命令行运行时指定一个任意的配置文件。
// 配置文件优先级
const configFilenames = [
  ".eslintrc.js",
  ".eslintrc.yaml",
  ".eslintrc.yml",
  ".eslintrc.json",
  ".eslintrc",
  "package.json",
];

1. 配置对象

  • Environments: 指定脚本的运行环境。每种环境都有一组特定的预定义全局变量。
  • Globals: 脚本在执行期间访问的额外的全局变量。
  • Rules: 启用的规则及其各自的错误级别。

2. 指定解析器选项 parserOptions

ESLint 允许你指定想要支持的 JavaScript 语言选项。默认情况下,ESLint 支持 ECMAScript 5 语法。当然,如果需要可以覆盖默认设置,以启用对其他 ECMAScript 版本或 JSX 的支持。

关于解析器选项可以在 .eslintrc.* 文件中使用 parserOptions 属性设置。配置选项如下:

  • ecmaVersion:默认设置 3,5 ECMAScript 版本,可以使用 6、7、8、9、10 来指定需要使用的 ECMAScript 版本,当然使用对应的年份版本号也是可以的,如 6 对应 2015。
  • sourceType:设置为 “script” (默认) 或 “module”(如果你的代码是 ECMAScript 模块)。
  • ecmaFeatures: 这是个对象,表示想使用的额外的语言特性:
    • globalReturn:允许在全局作用域下使用 return 语句
    • impliedStrict:启用全局 strict mode (如果 ecmaVersion 是 5 或更高)
    • jsx:启用 JSX
    • experimentalObjectRestSpread:启用实验性的 object rest/spread properties 支持。

3. 规则定义 rules

// 定义规则部分
{
  "rules": {
    "semi": ["error", "always"], // 使用分号结束
    "quotes": ["error", "double"] // 使用双引号
  }
}

其中,"semi"和"quotes"是 ESLint 中规则的名称,规则中的第一个值是指错误级别。

这三个错误级别可以允许细粒度的控制 ESLint 是如何应用规则:

错误级别描述
off or 0关闭规则
warn or 1将规则视为一个警告(不会影响退出码)
error or 2将规则视为一个错误(退出码为 1)

4. .eslintrc.json 示例

{
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "rules": {
    "semi": ["error", "always"],
    "quotes": "error"
  }
}

配置文件传送门:configuring 配置文件

三、规则页面

为了对规则有更好的理解,ESLint 对其进行了分门别类。

所有的规则默认都是禁用的。在配置文件中,使用 “extends”: “eslint:recommended” 来启用推荐的规则,报告一些常见的问题,在下文中这些推荐的规则都带有一个 ✔ 标记。

"extends": "eslint:recommended" // 开启规则页面中 ✔ 的规则

规则分类主要有以下:

  • Possible Errors:这些规则与 JavaScript 代码中可能的错误或逻辑错误有关。
  • Best Practices:这些规则是关于最佳实践的,帮助避免一些问题。
  • Strict Mode:该规则与使用严格模式和严格模式指令有关。
  • Variables:这些规则与变量声明有关。
  • Node.js and CommonJS:这些规则是关于 Node.js 或 在浏览器中使用 CommonJS 的。
  • Stylistic Issues:这些规则是关于风格指南的,而且是非常主观的。
  • ECMAScript 6:这些规则只与 ES6 有关, 即通常所说的 ES2015。
  • Deprecated
  • Removed:来自旧版本的 eslint(在弃用策略之前)的这些规则已被较新规则替换。

规则页面传送门:Rules 规则页面

总结

以上便是今天介绍到的 ESLint 相关的全部内容,通过配置信息或者配置文件能够实现对 JavaScript 语法进行检测,对于 eslint 中内置的 rules 规则可以到官网中阅读详细内容。




最后,如果您有更好的方法,欢迎在留言区中分享;或者实际操作中遇到什么问题均可留言或者私信我,感谢您的观看!
官方文档:ESLint

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俊小赞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值