ESLint:JavaScript 项目的代码质量守门员

ESLint 在 GitHub 上拿到 27,313 Star。

做 JavaScript 开发的人都有体会,代码写多了总会冒出一些坏习惯:未使用的变量、遗漏的分号、隐式的类型转换。ESLint 干的事就是在你提交代码之前,把这些东西全找出来。

1、它是干嘛的

一个 JavaScript 代码检查工具。扫描你的代码,找出有问题的模式,逐条告诉你哪里不对。

和 JSLint、JSHint 这些前辈比,ESLint 做了三件关键的事:

  • 用 Espree 做 JavaScript 解析,基于 AST 分析代码结构
  • 每条规则都是独立的插件,运行时可以增减
  • 配置文件直接控制每条规则的开关和严格程度

正文顶部截图

2、为什么用它

团队协作的项目里,代码风格统一是刚需。十个人写十种缩进,review 的时候光看格式就够头疼。

ESLint 可以在编辑器里实时标红问题代码,也可以在 CI 流程中做门禁检查。发现问题的时机越早,修起来越便宜。

规则有三个级别:off 关掉、warn 警告、error 报错。先用 warn 磨合团队习惯,等适应了再切到 error。

3、怎么装

Node.js 版本要求 20.19+、22.13+ 或 24+,先确认环境。一键初始化配置:

npm init @eslint/config@latest

跑完会问你几个问题,选完自动生成 eslint.config.js。之后直接检查文件:

npx eslint yourfile.js

用 pnpm 的话,在 .npmrc 里加两行:

auto-install-peers=true
node-linker=hoisted

4、配置长什么样

配置文件是标准的 JavaScript,规则按文件类型匹配:

import { defineConfig } from "eslint/config";

export default defineConfig([
  {
    files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
    rules: {
      "prefer-const": "warn",
      "no-constant-binary-expression": "error",
    },
  },
]);

规则名字可以在文档里查到完整列表,每个名字对应一种代码模式,配好之后 ESLint 自动帮你检查。

5、和 Prettier 的关系

经常有人问:用了 ESLint 还需要 Prettier 吗?

需要。两者分工不同:ESLint 管代码质量,查 bug 和坏习惯;Prettier 管代码格式,管缩进、换行和引号。各司其职,配合使用是主流方案。

README区域截图

6、支持哪些版本

ESLint 对 ECMAScript 的支持覆盖了 ES3、ES5 以及 2015 年至今的所有正式标准。实验性语法可以通过切换 parser 来支持,比如 Babel 项目用 @babel/eslint-parser

React 项目的 JSX 也能直接解析,但需要在配置里开启。如果要检查 React 特有的语义规则,再加一个 eslint-plugin-react

发布节奏是两周一次,周五或周六。遵循语义化版本,minor 更新可能新增报错,建议 package.json 里用 ~ 锁版本。

in-react`。

发布节奏是两周一次,周五或周六。遵循语义化版本,minor 更新可能新增报错,建议 package.json 里用 ~ 锁版本。

更多推荐