sublime中eslint不报错,首要检查控制台有无“sublimelinter: eslint”日志;无日志说明校验未启动,常见原因包括语法识别错误(非javascript/babel jsx)、缺失.eslintrc配置文件、lint_mode未设为background,或executable路径配置错误。

Sublime 里 ESLint 根本不报错?先看控制台有没有 SublimeLinter: eslint 日志
没日志=校验链根本没启动,不是插件装错了,而是某处断开了。打开 Sublime 控制台(Ctrl+` 或 Cmd+`),保存一个明显有错的 JSX 文件(比如写 const a = ;),观察输出。如果没有以 SublimeLinter: eslint 开头的日志,说明 SublimeLinter-eslint 没触发——常见原因有三个:
• 当前文件右下角状态栏显示的是 Plain Text 或 JavaScript,不是 Babel 或 React JSX(必须用 Babel 插件切换语法)
• 项目根目录缺少 .eslintrc.js、.eslintrc.json 或 package.json 中的 eslintConfig 字段,ESLint 会静默降级为空配置
• SublimeLinter 的全局设置里 "lint_mode" 还是默认的 "on_save",没改成 "background"
executable 路径填错是最常见的“找不到 ESLint”错误
SublimeLinter-eslint 不会帮你装 ESLint,只调你系统里已有的 eslint 命令。终端能跑 eslint --version ≠ Sublime 能找到它。
• macOS/Linux:优先用项目本地路径,例如 "executable": "/path/to/your/project/node_modules/.bin/eslint";全局安装的路径(如 /usr/local/bin/eslint)常因 shell 环境隔离失效
• Windows:填 "executable": "C:\myproject\node_modules\.bin\eslint",别用 eslint.cmd——插件内部会自动补后缀
• 别漏掉反斜杠转义(Windows)或权限问题(macOS/Linux 下 .bin/eslint 需可执行权限)
• 修改完配置后,重启 Sublime 才生效(不是重载设置)
React/JSX 语法报错但规则不生效?检查 parser 和 plugins
ESLint 默认不认 JSX,必须显式启用解析支持。你的 .eslintrc.js 或 .eslintrc.json 里至少要有:
• "parser": "babel-eslint"(注意:2026 年仍广泛兼容,@babel/eslint-parser 需额外配 requireConfigFile: false)
• "plugins": ["react"](不是 eslint-plugin-react,插件名去前缀)
• "env": {"browser": true, "es6": true}(否则 const、fetch 等直接报未定义)
• 若用 TypeScript,加 "parserOptions": {"ecmaFeatures": {"jsx": true}},否则 JSX 标签被当语法错误
• 规则里要开 "react/react-in-jsx-scope"(React 17+ 自动注入,但旧版或自定义渲染需手动)
为什么 --fix 不自动修 JSX?因为部分规则不支持安全修复
"args": ["--fix"] 只对 ESLint 内置的“无副作用修复”规则有效,比如引号、分号、空格;JSX 相关规则(如 react/prop-types、react/jsx-closing-bracket-location)基本不进 --fix 流程。
• 想修 JSX 格式,得靠 Prettier + prettier-eslint 链式处理,但 Sublime 里稳定性差,容易冲突
• 更可靠的做法:在 args 加 --ext .js,.jsx,.ts,.tsx,确保 JSX 文件被识别为检查目标
• 注意 --fix 仅在保存时触发(lint_mode: "background" 下是实时 lint,但 fix 仍只在 save 时跑),别指望敲代码中途自动改
executable 路径指向一个看似存在、实则无法执行的文件,或者 .eslintrc 在子目录里而 Sublime 根本没往上找——ESLint 的配置查找是向上遍历的,但 SublimeLinter 默认只认项目根目录下的配置。











