JS/TS 生态事实标准的静态代码检查工具,2013 年发布,插件化架构,通过 AST 分析发现代码问题并可自动修复。27.5k stars。
核心特性
- 插件架构:核心只做 JS 语法检查,React/Vue/TypeScript/无障碍性等场景靠社区插件(
eslint-plugin-react、@typescript-eslint、eslint-plugin-jsx-a11y等) - 规则可配置:每条规则可设为
off/warn/error,支持extends继承共享配置(eslint-config-airbnb、eslint-config-standard等) - 自动修复:
--fix能修复大部分风格类问题 - Flat Config:新版默认配置格式为
eslint.config.js(ESM,扁平数组结构),替代旧版.eslintrc.*的层级继承模式
安装与使用
npm init @eslint/config@latest # 交互式生成配置
npx eslint . # 检查当前目录
npx eslint . --fix # 检查并自动修复配置示例(Flat Config)
// eslint.config.js
import js from "@eslint/js";
import tseslint from "typescript-eslint";
export default [
js.configs.recommended,
...tseslint.configs.recommended,
{
rules: {
"no-unused-vars": "warn",
"@typescript-eslint/no-explicit-any": "error",
},
},
];工具边界
- 生态最广、规则最全、社区插件最丰富,但纯 JS 实现,大型项目检查速度是明显瓶颈
- 类型感知检查(typed linting)依赖
@typescript-eslint,需要 TS 编译器参与,进一步拖慢速度 - 2026 年起面临 Rust 实现的 Biome/Oxlint 竞争,但插件生态和历史积累仍是最大优势
与新一代 linter 的关系
- oxlint:Rust 实现,速度快 50-100 倍,内置复刻大部分 ESLint 核心规则和常用插件规则,可与 ESLint 搭配使用(Oxlint 先跑快速检查,ESLint 补充覆盖 Oxlint 未实现的规则)
- biome:Rust 实现,linter+formatter 一体化,规则命名和分类参考 ESLint 生态,提供
eslint-config-biome帮助双工具共存迁移 - standardjs:基于 ESLint 内核构建的零配置风格方案,本质是预设好规则的 ESLint 封装