已扩展eslint-config-airbnb时是否需额外扩展React相关ESLint规则
结论先行
你提到的两个扩展项都是冗余配置,可以直接移除,不会损失任何校验效果,反而能避免不必要的规则加载顺序冲突。
关于plugin:react/recommended
不需要保留,可以直接删掉。
eslint-config-airbnb本身已经完整整合了eslint-plugin-react的官方推荐规则,同时在推荐规则的基础上叠加了Airbnb团队定制的更严格的React代码规范约束,覆盖的规则范围比原生plugin:react/recommended更广、要求更明确。- 重复声明
plugin:react/recommended不会带来任何额外的校验能力,反而可能因为配置加载顺序的问题,意外覆盖Airbnb已经调整好的规则阈值,出现不符合预期的校验结果。
关于plugin:react-hooks/recommended
不需要单独引入,你当前配置里的airbnb/hooks已经完全覆盖了相关能力。
airbnb/hooks配置本身就是基于eslint-plugin-react-hooks的官方推荐规则封装的,不仅完整包含了plugin:react-hooks/recommended里的两个核心规则(rules-of-hooks、exhaustive-deps),还针对Airbnb的整体代码规范对规则细节做了适配调整。- 额外引入
plugin:react-hooks/recommended属于重复加载,不会新增校验规则,没有实际收益。
优化后的extends配置参考
你可以把extends字段精简成下面的配置,校验效果和原来完全一致,还避免了冗余:
extends: [ 'airbnb', 'airbnb-typescript', 'airbnb/hooks', // 如果你需要更严格的TypeScript类型校验,可以打开下面两个注释 // "plugin:@typescript-eslint/recommended", // "plugin:@typescript-eslint/recommended-requiring-type-checking", // "plugin:eslint-comments/recommended", 'plugin:jest/recommended', // 注意prettier相关配置必须放在最后一项,避免和其他格式化规则冲突 'plugin:prettier/recommended', ],
注意:使用
airbnb-typescript必须在parserOptions里配置project字段指向你的项目tsconfig.json路径,否则相关TS规则无法正常生效。
内容的提问来源于stack exchange,提问作者meez
相关产品推荐
相关产品推荐

