eslint插件装了但不报错,需检查sublimelinter-eslint是否安装、node和eslint可执行路径是否正确配置、项目根目录是否存在合规.eslintrc.*文件、语法识别是否为javascript,以及react/ts项目中parser和jsx支持是否启用。

ESLint插件装了但不报错?检查Sublime Text的Node.js路径
Sublime Text本身不自带Node环境,eslint命令必须能被系统或插件正确调用。常见现象是插件已安装(如SublimeLinter-eslint),但编辑器里完全没提示,连语法错误都不标红。
根本原因通常是Sublime找不到全局eslint可执行文件,尤其在macOS用brew或nvm安装、Windows用npm全局安装但未加到PATH时最易发生。
- 打开Sublime →
Preferences → Package Settings → SublimeLinter → Settings - 在
settings对象里补全"node_executable": "/usr/local/bin/node"(macOS)或"node_executable": "C:\Program Files\nodejs\node.exe"(Windows) - 确认
eslint路径:终端运行which eslint(macOS/Linux)或where eslint(Windows),把输出路径填进"eslint_executable"字段 - 重启Sublime,打开一个
.jsx文件,改写一个明显错误(比如const [a, b] = useState()缺参数),看是否触发警告
React项目里ESLint不识别JSX?确认配置加载顺序和解析器
即使eslint命令行能跑,Sublime里仍可能对return (<div>...</div>)完全无反应——这不是插件问题,而是ESLint没启用JSX支持。
关键在于:SublimeLinter-eslint默认只读项目根目录下的.eslintrc.*,但若项目用了eslint-config-airbnb这类依赖包,且没正确声明parser和plugins,JSX就会被当成非法语法直接跳过校验。
- 确保项目有
.eslintrc.js(或.eslintrc.json),且包含parser: '@babel/eslint-parser'或parser: '@typescript-eslint/parser'(根据实际技术栈) -
rules里至少启用一条React规则,例如'react/react-in-jsx-scope': 'error',否则Sublime可能因规则为空而不触发校验 - 如果用TypeScript,
parserOptions必须含ecmaFeatures: { jsx: true },否则<component></component>会被解析失败 - 删掉
node_modules/.cache和package-lock.json重装依赖,避免eslint-plugin-react版本与ESLint主版本不兼容(如ESLint v8+需eslint-plugin-react@^7.32.0)
保存时自动修复失败?别依赖Sublime内置“Fix on Save”
SublimeLinter-eslint本身不提供自动修复功能,所谓“Fix on Save”其实是靠eslint --fix命令实现的,而Sublime原生不支持在保存瞬间调用该命令并回写文件。
Orderly React SDK 钩子使用参考指南,包括 useOrderEntry、usePositionStream、useOrderbookStream、useCollateral 等。
强行开启"fix_on_save": true常导致修复不生效、光标乱跳,甚至覆盖未保存修改。真实可用的修复路径只有两条:
- 手动触发:选中代码 → 右键 →
SublimeLinter → Fix Error(仅对当前选区生效,安全但繁琐) - 用
SublimeText-ESLintFix插件替代原生方案:它会调用eslint --fix并接管保存流程,但需额外配置"fix_cmd": ["eslint", "--fix"]和"fix_on_save": true - 更稳的做法是放弃Sublime自动修复,改用终端
npm run lint:fix(脚本定义为eslint --ext .js,.jsx,.ts,.tsx src/ --fix),既可靠又避免编辑器卡顿
多人协作时规则不一致?把ESLint配置固化进项目而非Sublime设置
把rules写在Sublime的Package Settings里,等于把团队规范变成个人偏好。A同事关掉react-hooks/exhaustive-deps,B同事开着,同一段useEffect在不同机器上表现不同,CI却报错——这是最隐蔽的协作陷阱。
唯一解法是让Sublime完全服从项目级配置,而不是反过来。
- 删掉Sublime设置里的
"rules"、"globals"等覆盖字段,只保留node_executable和eslint_executable这类环境路径 - 所有规则必须落在项目根目录的
.eslintrc.js中,并提交到Git;建议用extends: ['airbnb', 'plugin:react/recommended']起手,再按需override - 验证方式:终端执行
npx eslint src/App.jsx,结果必须和Sublime里看到的警告完全一致;若有差异,说明Sublime没读到项目配置,检查cwd是否被错误覆盖
真正麻烦的不是配置多,而是路径、解析器、插件版本这三者稍有错位,Sublime就静默失效——它不会报错,只会假装什么都没看见。










