此页面提供了 Airbnb JavaScript 风格指南仓库中 ESLint 配置的概述。它解释了不同配置包和入口点的结构、目的和用法。有关特定规则类别的信息,请参阅 ESLint 规则类别。
Airbnb JavaScript 风格指南仓库提供了两个主要的 ESLint 配置包:
这些配置实现了 Airbnb JavaScript 风格指南中所述的编码标准,作为可强制执行的 ESLint 规则,使开发人员能够自动根据这些标准检查其代码。
来源:packages/eslint-config-airbnb/package.json1-97 packages/eslint-config-airbnb-base/package.json1-92
包含 JavaScript 和 React/JSX 规则的PRIMARY配置。它通过添加 React 特定的规则来构建 eslint-config-airbnb-base。
eslint (^7.32.0 || ^8.2.0)
eslint-plugin-import (^2.30.0)
eslint-plugin-jsx-a11y (^6.10.0)
eslint-plugin-react (^7.36.1)
eslint-plugin-react-hooks (^5.1.0)
来源:packages/eslint-config-airbnb/package.json87-93
Foundation配置,仅包含与 JavaScript 相关的规则,不包含 React 支持。这适用于 Node.js 项目或不使用 React 的前端项目。
eslint (^7.32.0 || ^8.2.0)
eslint-plugin-import (^2.30.0)
来源:packages/eslint-config-airbnb-base/package.json82-85
这两个配置包都提供了多个入口点以适应不同的用例。
来源:packages/eslint-config-airbnb/package.json5-16 packages/eslint-config-airbnb-base/package.json5-18
| 入口点 | 目的 | 用途 |
|---|---|---|
默认 (index.js) | 包含 ES6+ 和 React 在内的完整规则集 | "extends": "airbnb" |
/hooks | 添加 React Hooks 特定规则 | "extends": ["airbnb", "airbnb/hooks"] |
/whitespace | 仅强制执行空格规则,其他规则设置为警告 | "extends": "airbnb/whitespace" |
/base | 已弃用,请改用 eslint-config-airbnb-base | — |
/legacy | 已弃用,请改用 eslint-config-airbnb-base/legacy | — |
来源:packages/eslint-config-airbnb/README.md1-88
| 入口点 | 目的 | 用途 |
|---|---|---|
默认 (index.js) | 现代 JavaScript (ES6+) 的完整规则集 | "extends": "airbnb-base" |
/legacy | 兼容 ES5 及更早版本的规则 | "extends": "airbnb-base/legacy" |
/whitespace | 仅强制执行空格规则,其他规则设置为警告 | "extends": "airbnb-base/whitespace" |
来源:packages/eslint-config-airbnb-base/README.md1-96
Airbnb 配置中的 ESLint 规则按关注点进行分类。这种逻辑分组使得理解、维护和扩展配置更加容易。
来源:packages/eslint-config-airbnb/package.json5-16 packages/eslint-config-airbnb-base/package.json5-18
Airbnb ESLint 配置在规则严重性方面有特定的方法。
这种分布突显了 Airbnb 对严格代码质量执行的重视,绝大多数规则都设置为“error”级别。
来源:packages/eslint-config-airbnb/package.json1-97 packages/eslint-config-airbnb-base/package.json1-92
安装配置及其对等依赖项的推荐方法。
然后在项目的 .eslintrc 文件中:
要启用 React Hooks 规则:
然后在项目的 .eslintrc 文件中:
对于 ES5 项目:
来源:packages/eslint-config-airbnb/README.md16-59 packages/eslint-config-airbnb-base/README.md19-62
两个配置包都与特定的 ESLint 版本保持兼容。
| 配置 | ESLint 兼容性 |
|---|---|
| eslint-config-airbnb v19.x | ESLint v7.32.0+ 或 v8.2.0+ |
| eslint-config-airbnb-base v15.x | ESLint v7.32.0+ 或 v8.2.0+ |
Node.js 版本要求
来源:packages/eslint-config-airbnb/package.json87-95 packages/eslint-config-airbnb-base/package.json82-87
两个配置包的最新主版本都引入了多项重大更改。
exports 字段以改进模块解析来源:packages/eslint-config-airbnb/CHANGELOG.md1-77 packages/eslint-config-airbnb-base/CHANGELOG.md1-19
刷新此 Wiki
最后索引时间2025年4月17日(11f986)