概述
旧式 eslintrc 从多处隐式继承规则,导致“到底哪些规则生效”难以判断,排查一个覆盖往往耗费数小时。扁平配置把配置表示为有序数组,组合与覆盖都显式可见,代价是部分插件可能尚未完全适配。
关键步骤
- 创建导出配置对象数组的 eslint.config.js。
- 使用所信任插件的推荐配置作为基线。
- 用 files 键添加按文件生效的覆盖。
- 在顶层配置中声明忽略,而非依赖单独忽略文件。
验证
- 配置显式且顺序清晰。
- 按文件覆盖只作用于目标文件。
- 忽略规则在配置内生效。
- 迁移后规则结果符合预期。
注意事项
- 扁平配置仍在演进,部分插件适配滞后,可能需临时变通。
- 迁移可能暴露此前被掩盖的违规,需要逐一分类处理。
适用范围
本条目围绕「将 ESLint 迁移到扁平配置」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
import js from '@eslint/js';
import tseslint from 'typescript-eslint';
export default [
js.configs.recommended,
...tseslint.configs.recommended,
{ files: ['**/*.test.ts'], rules: { 'no-console': 'off' } },
{ ignores: ['dist/**'] },
];