菜单

eslint-config-airbnb-base

相关源文件

目的和概述

eslint-config-airbnb-base 是一个全面的 ESLint 配置包,它实现了 Airbnb 的 JavaScript 风格指南规则。该包提供了基础的 JavaScript 检查规则,不包含 React 特定的配置。如需 React 特定的 ESLint 配置,请参阅 eslint-config-airbnb

该包作为一套可共享、标准化的 ESLint 规则,用于强制执行一致的代码风格,并帮助防止 JavaScript 应用程序中的常见错误。它旨在与现代 JavaScript(最高支持 ECMAScript 2018)配合使用,并为不同的用例提供专门的配置。

来源: packages/eslint-config-airbnb-base/package.json1-92 packages/eslint-config-airbnb-base/index.js1-17

包结构与组件

eslint-config-airbnb-base 被组织成一组规则集,这些规则集被组合成不同的配置配置文件。主配置扩展了多个专门的规则文件,每个文件都侧重于 JavaScript 开发的特定方面。

配置架构

该包公开了三个主要的配置入口点

  1. 主配置 (index.js) - 默认且最全面的规则集
  2. 遗留配置 (legacy.js) - 支持较旧的 JavaScript 环境 (ES5)
  3. 间距配置 (whitespace.js) - 仅专注于间距格式化规则

每个专门的规则文件都封装了一类特定的规则,使整个配置具有模块化和可维护性。

来源: packages/eslint-config-airbnb-base/index.js1-17 packages/eslint-config-airbnb-base/package.json6-18

规则类别

该配置组织为以下规则类别

规则类别目的文件路径
最佳实践强制执行编程最佳实践,以避免错误并保持代码质量./rules/best-practices.js
错误(Errors)捕获常见错误和潜在问题./rules/errors.js
Node.jsNode.js 开发特有规则./rules/node.js
风格代码格式和风格约定./rules/style.js
变量变量声明和使用模式./rules/variables.js
ES6ECMAScript 2015+ 功能规则./rules/es6.js
导入模块导入/导出约定 (使用 eslint-plugin-import)./rules/imports.js
StrictJavaScript strict 模式使用./rules/strict.js

主配置 (index.js) 扩展了所有这些规则类别,以创建全面的 linting 规则集。

来源: packages/eslint-config-airbnb-base/index.js2-10 packages/eslint-config-airbnb-base/package.json10-17

配置选项

主配置

主配置以现代 JavaScript 开发为目标,并设置了以下解析器选项

此配置支持 ES2018 语法,并将文件视为 ES 模块。

来源: packages/eslint-config-airbnb-base/index.js12-15

配置入口点

该包提供三种不同的配置

  1. 主配置 - 默认导出,包含所有规则类别,支持现代 JavaScript
  2. 遗留配置 - 适用于使用旧版 JavaScript (ES5) 的项目,省略 ES6+ 规则
  3. 间距配置 - 仅专注于间距和格式化规则,适用于只想强制执行一致格式的项目

来源: packages/eslint-config-airbnb-base/package.json6-18 packages/eslint-config-airbnb-base/CHANGELOG.md42-44

规则理念和标准

Airbnb 的 JavaScript 风格指南旨在促进一致、可读和可维护的代码。此包中的 ESLint 规则反映了这一理念,遵循以下普遍原则

  1. 错误预防 - 许多规则可以捕获潜在的运行时错误
  2. 一致性 - 规则强制执行一致的代码模式
  3. 现代 JavaScript - 鼓励使用现代 ES6+ 功能和模式
  4. 可读性 - 强制执行可提高代码可读性的格式

规则集的一个关键方面是其严格性——正如原始系统架构图中所示的规则严重性分布一样,绝大多数规则都设置为“error”级别,这表明 Airbnb 注重严格的代码质量执行。

来源: packages/eslint-config-airbnb-base/CHANGELOG.md1-375

使用和集成

安装

要在您的项目中使用 eslint-config-airbnb-base,您需要与它的对等依赖项一起安装该包

配置

安装后,您可以在 ESLint 配置文件中扩展此配置

对于主配置

对于遗留配置

对于仅限间距的配置

来源: packages/eslint-config-airbnb-base/package.json82-85 packages/eslint-config-airbnb-base/CHANGELOG.md112-113

定制

虽然 Airbnb 配置旨在全面,但项目可能需要自定义某些规则。推荐的方法是扩展基础配置并根据需要覆盖特定规则

该包本身就采用了这种模式,正如其自身的 .eslintrc 文件所示,其中它为自己的代码库禁用了 comma-dangle 规则和 max-len 规则。

来源: packages/eslint-config-airbnb-base/.eslintrc1-10

与其他 Airbnb 配置的关系

eslint-config-airbnb-base 是 Airbnb 提供的 ESLint 配置系列的一部分

  • eslint-config-airbnb-base 提供基础 JavaScript 规则
  • eslint-config-airbnb 扩展了基础配置并添加了 React 特定的规则

这种分离允许项目选择适当的 linting 级别。纯 JavaScript 项目可以使用 eslint-config-airbnb-base,而 React 项目通常会使用 eslint-config-airbnb

来源: packages/eslint-config-airbnb-base/package.json1-92

版本历史和兼容性

当前版本 (15.0.0) 支持

  • ESLint v7.32.0 或 v8.2.0+
  • Node.js v10.12.0 或 v12.0.0+
  • 最新的 ECMAScript 功能 (最高支持 ES2018)

主要更新通常包括可能需要代码修改的规则更改,例如启用新规则或更改规则选项。变更日志详细记录了这些更改。

来源: packages/eslint-config-airbnb-base/package.json3 packages/eslint-config-airbnb-base/package.json86-88 packages/eslint-config-airbnb-base/CHANGELOG.md1-47

结论

eslint-config-airbnb-base 提供了一套基于 Airbnb JavaScript 风格指南的全面 ESLint 规则。它为 JavaScript 项目提供了保持代码风格一致和防止错误的坚实基础。凭借其模块化结构和不同的配置选项,它可以适应各种项目需求,从现代 ES6+ 应用程序到遗留 ES5 代码库。