扩展 ESLint 的方式
ESLint 具有高度可插拔性和可配置性。您可以通过多种方式扩展 ESLint 的功能。
此页面解释了扩展 ESLint 的方式,以及这些扩展如何组合在一起。
插件
插件允许您向项目添加自己的 ESLint 自定义规则和自定义处理器。您可以将插件作为 npm 模块发布。
插件很有用,因为您的项目可能需要一些核心 eslint
包中未包含的 ESLint 配置。例如,如果您正在使用像 React 这样的前端 JavaScript 库或像 Vue 这样的框架,这些工具的一些功能需要 ESLint 核心规则范围之外的自定义规则。
通常,插件会与 ESLint 的配置配对,该配置将插件中的一组功能应用于项目。您也可以在插件中包含配置。
例如,eslint-plugin-react
是一个 ESLint 插件,其中包含专门用于 React 项目的规则。这些规则包括诸如强制 React 组件生命周期方法的一致使用以及在渲染动态列表时需要使用 key 属性之类的内容。
要了解有关创建可以包含在插件中的扩展的更多信息,请参阅以下文档
要了解有关将这些扩展捆绑到插件中的更多信息,请参阅插件。
可共享配置
ESLint 可共享配置是 ESLint 的预定义配置,您可以在项目中使用它们。它们将规则和其他配置捆绑在 npm 包中。您可以放入配置文件中的任何内容都可以放入可共享配置中。
您可以独立发布可共享配置,也可以作为插件的一部分发布。
例如,一个流行的可共享配置是 eslint-config-airbnb,除了某些解析器选项之外,它还包含各种规则。这是一组 ESLint 规则,旨在匹配 Airbnb JavaScript 风格指南 使用的风格指南。通过使用 eslint-config-airbnb
可共享配置,您可以自动在项目中强制执行 Airbnb 风格指南,而无需手动配置每个规则。
要了解有关创建可共享配置的更多信息,请参阅共享配置。
自定义格式化程序
自定义格式化程序接受 ESLint lint 结果,并以您定义的格式输出结果。自定义格式化程序允许您以最适合您需求的格式显示 lint 结果,无论是以特定的文件格式、特定的显示样式还是针对特定工具优化的格式。只有当内置格式化程序不能满足您的用例时,您才需要创建自定义格式化程序。
例如,自定义格式化程序 eslint-formatter-gitlab 可用于在 GitLab 代码质量报告中显示 ESLint 结果。
要了解有关创建自定义格式化程序的更多信息,请参阅自定义格式化程序。
自定义解析器
ESLint 自定义解析器是一种扩展 ESLint 以支持 linting 新语言特性或代码中自定义语法的方式。解析器负责获取您的代码并将其转换为抽象语法树 (AST),然后 ESLint 可以分析和 lint 该 AST。
ESLint 附带一个内置的 JavaScript 解析器 (Espree),但自定义解析器允许您 lint 其他语言或扩展内置解析器的 lint 功能。
例如,自定义解析器 @typescript-eslint/parser 扩展了 ESLint 以 lint TypeScript 代码。
自定义解析器也可以包含在插件中。
要了解有关创建自定义解析器的更多信息,请参阅自定义解析器。