sublime text 不运行 eslint,仅调用系统 eslint 命令;校验失败主因是 path 未加载或 executable 路径配置错误,需手动指定路径、确保语法为 javascript、项目有有效配置、启用 background lint_mode,并保存文件才触发校验。

Sublime Text 本身不运行 ESLint,它只调用你系统里已有的 eslint 命令;插件装得再全,只要终端里执行 eslint --version 报错,Sublime 就一定不报错——因为根本没启动校验。
SublimeLinter-eslint 找不到 eslint 的真实原因
不是插件没装对,而是 Sublime 启动时读不到你的 shell 环境 PATH。macOS/Linux 用户双击图标启动 Sublime,默认不加载 ~/.zshrc 或 ~/.bash_profile 里的 PATH;Windows 用户若用全局安装,常误填 eslint.cmd 而非 eslint(SublimeLinter-eslint 会自动补后缀,填错就失败)。
- 先在终端确认:运行
which eslint(macOS/Linux)或where eslint(Windows),拿到真实路径 - 全局安装的 macOS 用户,别依赖 PATH,直接在配置里写死路径,例如:
"executable": "/usr/local/bin/eslint" - 项目级更稳:用
npm install eslint --save-dev,然后填"executable": "./node_modules/.bin/eslint"(注意是相对路径,且 Sublime 必须在项目根目录下打开文件) - Windows 用户避免反斜杠转义问题,用正斜杠或双反斜杠:
"executable": "C:/myproject/node_modules/.bin/eslint"
为什么保存后没报错、也没高亮?
常见现象是控制台(Ctrl+`)里完全没 SublimeLinter: eslint: 日志,说明校验链从第一步就断了。这不是规则没配好,是连 ESLint 进程都没跑起来。
- 检查右下角状态栏:当前文件必须显示为
JavaScript,不是Plain Text、JSON或HTML;右键 →Set Syntax→JavaScript强制指定 - 确认项目根目录存在有效配置文件:
.eslintrc.js、.eslintrc.json或package.json里含eslintConfig字段;空项目没配置 = 默认规则 = 几乎不报错 - 打开 Sublime 控制台,删掉所有缓存日志后保存一个 JS 文件,看是否出现
SublimeLinter: eslint: xxx.js ERROR;没有就说明executable路径错、或lint_mode没启用 -
lint_mode别设成save:多个标签页 + 未保存文件 + 语法识别失败时,它可能完全不触发;改用"lint_mode": "background"最可靠
想保存时自动修复(--fix),但没生效?
--fix 只修复 ESLint 认为“安全”的格式类问题(比如引号、分号、空格),不会改逻辑;而且它只在保存动作发生时触发,输入过程中不运行。
- 必须加到
args里:"args": ["--fix"];单独配"fix": true无效 - TypeScript/Vue 项目要显式扩展检查范围:
"args": ["--fix", "--ext", ".js,.jsx,.ts,.tsx,.vue"] - 确保 ESLint 配置里对应规则启用了 fix 能力(例如
quotes: ["error", "single"]可修,no-console: "error"不可修) - 如果修复后代码变乱,大概率是 ESLint 和 Prettier 冲突;此时应卸载
eslint-plugin-prettier或统一用 Prettier 管格式,ESLint 管逻辑
最易被忽略的一点:SublimeLinter-eslint 不校验未保存的文件。哪怕你写了满屏错误,只要没按 Ctrl+S,它就不会调用 eslint —— 这和 VS Code 的实时 AST 解析完全不同。所以别盯着刚敲完的代码等红波浪线,先保存。











