核心概念
此页面包含 ESLint 一些核心概念的高级概述。
什么是 ESLint?
ESLint 是一个可配置的 JavaScript 代码检查工具。它可以帮助您发现和修复 JavaScript 代码中的问题。问题可以是任何东西,从潜在的运行时错误到不遵循最佳实践,再到样式问题。
规则
规则是 ESLint 的核心构建块。规则验证您的代码是否满足某个特定期望,以及如果不满足该期望该怎么办。规则还可以包含特定于该规则的其他配置选项。
例如,semi
规则允许您指定 JavaScript 语句是否应该以分号 (;
) 结尾。您可以将规则设置为始终要求分号或要求语句永远不要以分号结尾。
ESLint 包含数百个内置规则,您可以使用它们。您还可以创建自定义规则或使用其他人使用插件创建的规则。
有关更多信息,请参阅规则。
规则修复
规则可以选择为它们发现的违规提供修复。修复可以安全地纠正违规,而不会更改应用程序逻辑。
修复可以通过--fix
命令行选项和编辑器扩展自动应用。
可能提供修复的规则在规则中用🔧标记。
规则建议
规则可以选择提供建议,作为提供修复的补充或替代。建议在两个方面不同于修复
- 建议可能会更改应用程序逻辑,因此无法自动应用。
- 建议无法通过 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/parser是typescript-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。当开发与 ESLint 相关的插件、集成和其他工具时,API 非常有用。
除非您以某种方式扩展 ESLint,否则您应该使用 CLI。
有关更多信息,请参阅命令行界面和Node.js API。