ESLint 是什么
ESLint 是 JavaScript 与 TypeScript 的可插拔检查器:所有规则都以插件形式提供,每条规则可以设为关闭、警告或错误,并且能对一部分问题自动修复。它适合从一个小规则子集起步,逐步扩大——一次全开再逐条禁用,是最常见的失败路径。
基本信息
| 规则级别 | off / warn / error |
|---|---|
| 自动修复 | --fix 处理可自动化的一部分规则 |
| 配置形态 | 较新版本默认使用扁平配置 eslint.config.js,早期版本使用 .eslintrc 系列文件 |
| 起点 | eslint:recommended 或框架官方预设 |
| 语言支持 | JavaScript 原生;TypeScript 需配合 typescript-eslint |
常用命令与用法
- npx eslint . :检查整个项目,按配置生效。
- npx eslint . --fix :自动修复可修复项,修完要复核一次改动。
- npx eslint "src/**/*.ts" :按模式指定检查范围。
- npx eslint --debug 或 --print-config :排查配置是否按预期生效。
常用命令
常用命令
npx eslint . # 检查整个项目
npx eslint src/ --fix # 自动修复可修复项
npx eslint "src/**/*.{js,ts}" # 只检查指定目录与后缀
npx eslint --print-config src/a.ts # 查看某个文件最终生效的配置落地策略对比
| 策略 | 结果 |
|---|---|
| 先精选子集(如 recommended) | 问题可控,团队愿意持续修复 |
| 一次全开 | 历史代码海量报错,规则被整包关闭 |
| 关规则不写理由 | 后来人不敢打开,规则长期失效 |
| CI 只警告不失败 | 问题越积越多,最后无法收敛 |
让规则真正生效
- 规则关闭必须带说明与负责人,避免变成永久关闭。
- 新代码严格、旧代码宽松:对既有文件放行,对改动文件逐步收紧。
- 把自动修复接入提交钩子,格式类问题不必进入评审。
- 规则集合写进版本库,保证本地与 CI 结果一致。
- 在配置里注明每条自定义取舍的原因,后来人才敢延续或调整。
先小集合再扩展:规则全开后再大量禁用,等于绕了一圈又回到起点。
自动修复后要快速复核:--fix 的改动同样属于代码改动,需要看懂它改了什么。
推荐的默认集合只覆盖公认问题,业务约定(如禁止在组件里直接发请求)需要团队自己补成预设。