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 封装

相关