← 中文资源

简体中文版本

将 ESLint 迁移到扁平配置

用 eslint.config.js 取代 eslintrc 级联,显式组合带类型的规则集,并按文件模式保留覆盖。

阅读英文原文

概述

旧式 eslintrc 从多处隐式继承规则,导致“到底哪些规则生效”难以判断,排查一个覆盖往往耗费数小时。扁平配置把配置表示为有序数组,组合与覆盖都显式可见,代价是部分插件可能尚未完全适配。

关键步骤

  1. 创建导出配置对象数组的 eslint.config.js。
  2. 使用所信任插件的推荐配置作为基线。
  3. 用 files 键添加按文件生效的覆盖。
  4. 在顶层配置中声明忽略,而非依赖单独忽略文件。

验证

  • 配置显式且顺序清晰。
  • 按文件覆盖只作用于目标文件。
  • 忽略规则在配置内生效。
  • 迁移后规则结果符合预期。

注意事项

  • 扁平配置仍在演进,部分插件适配滞后,可能需临时变通。
  • 迁移可能暴露此前被掩盖的违规,需要逐一分类处理。

适用范围

本条目围绕「将 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/**'] },
];