You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
3.9 KiB

= ESLint
ESLint 是一个可配置的 JavaScript 检查器。
它可以帮助您发现并修复 JavaScript 代码中的问题。
问题可以是任何东西,从潜在的运行时错误,到不遵循最佳实践,再到样式问题。
== 核心概念
=== 规则
规则是 ESLint 的核心构建块。规则验证您的代码是否满足特定期望,以及如果不满足该期望该怎么办。规则还可以包含特定于该规则的其他配置选项。
例如,semi 规则允许您指定 JavaScript 语句是否应以分号 (;) 结尾。您可以将规则设置为始终需要分号或要求语句从不以分号结尾。
ESLint 包含数百个您可以使用的内置规则。您还可以创建自定义规则或使用其他人通过插件创建的规则。
=== 配置文件
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 语法。
自定义解析器通常包含在可共享配置或插件中,因此您不必直接使用它们。
=== 自定义处理器
ESLint 处理器从其他类型的文件中提取 JavaScript 代码,然后让 ESLint 对 JavaScript 代码进行检查。
或者,您可以使用处理器在使用 ESLint 解析 JavaScript 代码之前对其进行操作。
例如,eslint-plugin-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。
== 配置文件
ESLint 支持多种格式的配置文件:
. JavaScript - 使用 .eslintrc.js 并导出包含您的配置的对象。
. JavaScript (ESM) - 在 package.json 中指定 "type":"module" 的 JavaScript 包中运行 ESLint 时使用 .eslintrc.cjs。请注意,ESLint 目前不支持 ESM 配置。
. YAML - 使用 .eslintrc.yaml 或 .eslintrc.yml 定义配置结构。
. JSON - 使用 .eslintrc.json 定义配置结构。ESLint 的 JSON 文件也允许 JavaScript 样式的注释。
. package.json - 在您的 package.json 文件中创建一个 eslintConfig 属性并在那里定义您的配置。
如果同一目录下有多个配置文件,ESLint 只会使用一个。优先顺序如下:
. .eslintrc.js
. .eslintrc.cjs
. .eslintrc.yaml
. .eslintrc.yml
. .eslintrc.json
. package.json