ESLint v9.0.0 是 ESLint 的一个主要版本,它有几个重大变化,其中最大的变化是其配置文件和插件生态系统的使用,可以通过官方网站的 迁移到 v9.x 文档了解如何迁移。
这里有一个关于 ESLint V9 的扁平化配置的 npm 包,内置了一些个人常用的 ESLint 配置,这也是我在 GitHub 上发布的一个开源项目。如果它对您有帮助,请 给它一个 Star !
一款现代化的扁平 ESLint 配置,适用于 ESLint v9 和 v10 ,由 @chengpeiquan 精心打造。
⚡ 使用方法
使用此 ESLint 配置仅需三步:
- 安装依赖(参考:🚀 安装)
- 添加 ESLint 配置文件(参考:📂 配置文件)
- 在 VS Code 的
settings.json启用自动 Lint(参考:🛠 VS Code 配置)
这个快速指南可以作为入门辅助,避免遗漏关键步骤 🚀 。
🚀 安装
使用常用的包管理器安装该包:
注意: 支持 ESLint 9.x 和 10.x,并且需要 TypeScript 版本 >= 5.0.0。
如果使用的是 pnpm,建议在项目根目录添加 .npmrc 文件,并包含以下配置,以更顺利地处理 peer 依赖:
如果仍在使用 ESLint v8,请参考旧版(已不再维护)包:@bassist/eslint。
📂 配置文件
在项目根目录创建 eslint.config.js 文件:
然后在 package.json 中添加 "type": "module" :
运行 npm run lint 以检查代码,或运行 npm run lint:inspector 在 http://localhost:7777 查看可视化的 ESLint 配置。
Bun 可以直接加载
eslint.config.ts。如果你通过 Node.js 运行 ESLint,建议改用eslint.config.mjs,或者按照 ESLint 文档完成额外的设置。
🧩 JSONC 预设
如果希望 ESLint 直接检查 JSON 系列文件,可以使用 jsonc 预设:
jsonc 的默认行为:
- 支持
.json、.jsonc、.json5 - 默认递归排序对象 key(
jsonc/sort-keys) - 默认忽略
package.json,让包清单 key 排序继续交给格式化流程处理
如果你在 VS Code 里通过 ESLint 扩展做校验,并且手动设置了
eslint.validate,记得把 json 和 jsonc 也加进去。
如果需要,也可以在项目里覆盖默认行为:
✅ 类型安全的配置
为了增强类型安全性,可以使用 defineFlatConfig:
🛠 VS Code 配置
在 VS Code 工作区的 settings.json 添加以下配置,以启用自动 Lint 修复:
关于 prettier.configPath 请查看 格式化工具 部分。
📘 API 参考
defineFlatConfig
定义 ESLint 配置,可选支持 Prettier 和 Tailwind CSS。
API 类型声明:
选项类型声明:
createGetConfigNameFactory
createGetConfigNameFactory 是一个灵活的工具函数,用于生成 ESLint 配置命名工具。它可以快速拼接配置名称,确保命名空间一致,并便于组织和管理复杂的规则集。
API 类型声明:
使用示例:
为什么要使用它?
- 一致性:强制执行清晰统一的配置命名模式。
- 灵活性:允许为不同项目或范围自定义前缀。
- 简化管理:便于组织和浏览大型 ESLint 配置。
这个工具在构建可复用的 ESLint 配置或维护复杂项目的规则集时尤其有用。
📦 导出的配置
这些是一些常用的配置,如果有额外需求,欢迎提交 PR!
语言支持
框架支持
格式化工具
格式化规则默认启用,不会单独导出。如需自定义配置,请通过 defineFlatConfig API 的 options 传入。
- Prettier :
- 默认会读取
.prettierrc和.prettierignore的内容,并添加到 ESLint 规则中。 - 如果预期的配置文件不存在,则会使用 内置的 Prettier 规则作为兜底规则。
- 非以上配置文件并且不喜欢默认规则时,可以通过 defineFlatConfig 的
options.prettierRules将完整配置传递进来优先作为 ESLint 规则使用
- 默认会读取
- Tailwind CSS :
- 使用
eslint-plugin-better-tailwindcss,让 Tailwind CSS v3 和 v4 项目共用同一套 class linting。 - Monorepo、自定义 CSS 入口或自定义 class selector,可通过
options.tailwindcssSettings传递。
- 使用
其它
📚 迁移指南
- 扁平化配置(Flat Configs)不支持 ESLint 8.x 以下的版本。
--extCLI 选项已被移除 (#16991) 。
📝 发布日志
详细更新内容请参考 CHANGELOG 。


























