版本

核心概念

此页面包含 ESLint 一些核心概念的概括性概述。

什么是 ESLint?

ESLint 是一个可配置的 JavaScript 代码检查工具。它可以帮助您查找和修复 JavaScript 代码中的问题。问题可以是潜在的运行时错误、不遵循最佳实践或样式问题等。

规则

规则是 ESLint 的核心构建块。规则验证您的代码是否符合特定期望,以及在不符合期望时应执行的操作。规则还可以包含特定于该规则的附加配置选项。

例如,semi 规则允许您指定 JavaScript 语句是否应以分号 (;) 结尾。您可以将该规则设置为始终需要分号,或要求语句永远不要以分号结尾。

ESLint 包含数百个您可以使用的内置规则。您还可以创建自定义规则,或使用其他人通过 插件 创建的规则。

有关更多信息,请参阅 规则

规则修复

规则可以选择性地为它们发现的违规行为提供修复。修复可以安全地纠正违规行为,而不会更改应用程序逻辑。

修复可以通过 --fix 命令行选项 和编辑器扩展自动应用。

可能提供修复的规则在 规则 中标记为 🔧。

规则建议

除了提供修复之外或代替提供修复,规则还可以选择性地提供建议。建议与修复的不同之处在于以下两点

  1. 建议可能会更改应用程序逻辑,因此无法自动应用。
  2. 建议无法通过 ESLint CLI 应用,只能通过编辑器集成使用。

可能提供建议的规则在 规则 中标记为 💡。

配置文件

ESLint 配置文件是您在项目中放置 ESLint 配置的地方。您可以包含内置规则、您希望如何强制执行它们、带有自定义规则的插件、可共享配置、您希望规则应用于哪些文件等等。

有关更多信息,请参阅 配置文件

可共享配置

可共享配置是通过 npm 共享的 ESLint 配置。

可共享配置通常用于使用 ESLint 的内置规则强制执行样式指南。例如,可共享配置 eslint-config-airbnb-base 实现了流行的 Airbnb JavaScript 样式指南。

有关更多信息,请参阅 使用可共享配置包

插件

ESLint 插件是一个 npm 模块,可以包含一组 ESLint 规则、配置、处理器和语言。插件通常包含自定义规则。插件可以用于强制执行样式指南,并支持 JavaScript 扩展(如 TypeScript)、库(如 React)和框架(Angular)。

插件的一个常见用例是为框架强制执行最佳实践。例如,@angular-eslint/eslint-plugin 包含使用 Angular 框架的最佳实践。

有关更多信息,请参阅 配置插件

解析器

ESLint 解析器将代码转换为 ESLint 可以评估的抽象语法树。默认情况下,ESLint 使用内置的 Espree 解析器,它与标准的 JavaScript 运行时和版本兼容。

自定义解析器使 ESLint 能够解析非标准的 JavaScript 语法。自定义解析器通常包含在可共享配置或插件中,因此您不必直接使用它们。

例如,@typescript-eslint/parsertypescript-eslint 项目中包含的自定义解析器,它使 ESLint 能够解析 TypeScript 代码。

自定义处理器

ESLint 处理器从其他类型的文件中提取 JavaScript 代码,然后让 ESLint 检查 JavaScript 代码。或者,您可以使用处理器在用 ESLint 解析 JavaScript 代码之前对其进行操作。

例如,@eslint/markdown 包含一个自定义处理器,使您可以检查 Markdown 代码块内的 JavaScript 代码。

格式化器

ESLint 格式化器控制 CLI 中代码检查结果的外观。

有关更多信息,请参阅 格式化器

集成

使 ESLint 成为如此有用的工具的原因之一是围绕它的集成生态系统。例如,许多代码编辑器都有 ESLint 扩展,可以在您工作时在文件中显示代码的 ESLint 结果,这样您就不需要使用 ESLint CLI 来查看代码检查结果。

有关更多信息,请参阅 集成

CLI & Node.js API

ESLint CLI 是一个命令行界面,可让您从终端执行代码检查。CLI 有多种选项,您可以将其传递给其命令。

ESLint Node.js API 允许您从 Node.js 代码以编程方式使用 ESLint。该 API 在开发插件、集成以及与 ESLint 相关的其他工具时非常有用。

除非您以某种方式扩展 ESLint,否则应使用 CLI。

有关更多信息,请参阅 命令行界面Node.js API

更改语言