eslint-formatter只是格式化器,不扫描报错;真正负责规则校验、高亮提示的是sublimelinter-eslint,需同时安装sublimelinter框架及该插件,并正确配置路径、lint_mode和.eslintrc.*文件位置。

ESLint-Formatter插件根本不会自动扫描文件
很多人装完 ESLint-Formatter 就以为能像 IDE 那样实时标红问题,结果保存代码没反应——它压根不是 Linter,只是个格式化器(Formatter),只调用 eslint --fix 修格式,不触发规则校验也不报错。真正做规范扫描的是 SublimeLinter-eslint,它才负责读取 .eslintrc.js、高亮错误、悬停提示。
- 必须同时安装
SublimeLinter和SublimeLinter-eslint(不是ESLint-Formatter) -
ESLint-Formatter只在你手动按Ctrl+Shift+P→ESLint Fix时跑一次--fix,且只修它能自动修复的规则(比如缩进、分号) - 若
eslint命令没加到系统 PATH 或项目里没装eslint,SublimeLinter-eslint会直接静默失效,连错误图标都不显示
为什么 SublimeLinter-eslint 总显示 “No lint errors” 却实际有 bug?
常见原因是 ESLint 找不到配置或解析器。SublimeLinter 默认从项目根目录向上找 .eslintrc.*,但如果你的 JS 文件在 src/ 子目录下,而 .eslintrc.js 放在 packages/core/ 里,它就扫不到。
- 检查
SublimeLinter.sublime-settings中的"lint_mode": "background"是否开启(默认是) - 在 Sublime 控制台(
Ctrl+`)里看有没有类似Unable to locate eslint config的日志 - 强制指定配置路径:在项目根目录建
.sublimelinterrc,写{"eslint": {"args": ["--config", "./packages/core/.eslintrc.js"]}} - 如果用 TypeScript,确认
parserOptions.project指向正确的tsconfig.json,否则no-unused-vars这类规则会漏判
如何让扫描结果像企业看板一样集中展示?
Sublime 本身没有内置“问题看板”,但可以用 SublimeLinter 的命令面板 + Quick Panel 快速聚合所有错误。关键是把 Ctrl+Shift+P → SublimeLinter: Show All Errors 绑定成快捷键,并配合 SublimeLinter-contrib-eslint 的 show_panel_on_save 设置。
- 在用户按键绑定里加:
{"keys": ["ctrl+alt+e"], "command": "sublimelinter_show_all_errors"} - 在
SublimeLinter.sublime-settings中设"show_panel_on_save": true,保存即弹出错误列表 - 错误列表支持回车跳转到具体行,但不支持分类筛选(比如只看
error级别),得靠规则 severity 控制:在.eslintrc.js里把关键规则设为"error",次要的设为"warn" - 如果团队用自定义规则(比如禁止
console.log),确保rules里明确写了"no-console": "error",否则默认不启用
CI 流水线和本地扫描结果不一致怎么办?
最常踩的坑是本地用全局 eslint,CI 用项目里 node_modules/.bin/eslint,版本差一个小版本(比如 8.45.0 vs 8.56.0),规则行为就可能不同——特别是 eslint-plugin-react 的 react-hooks/exhaustive-deps 在 8.50+ 才修复了 false positive。
- 删掉全局
npm install -g eslint,一律用 npx:npx eslint src/ --ext .js,.jsx - 在
package.json的scripts里固定版本:"lint": "eslint --config .eslintrc.js src/",CI 和本地都跑这个命令 - SublimeLinter 默认走
PATH,要让它走项目内 bin,改SublimeLinter.sublime-settings:"executable": "${project_path}/node_modules/.bin/eslint" - 检查
eslint和插件版本是否匹配:运行npx eslint --version和npx eslint --print-config .eslintrc.js | grep -A 5 plugins
.eslintrc.js 后得重启 Sublime,或者手动触发 SublimeLinter: Reload Settings。











