必须安装Babel插件并手动设置语法为“Babel → JavaScript (Babel)”,再通过“Open all with current extension as…”绑定.jsx后缀;标红多因ESLint解析器未配@babel/eslint-parser,补全跳转弱属能力边界,非配置问题。

Sublime Text 本身不支持 JSX,装完插件也不自动生效——必须手动绑定语法、校验解析器、调整作用域,否则 return <div></div> 依然标红或全灰。
怎么让 .jsx 文件正确高亮(不是靠猜)
默认打开 .jsx 文件,右下角显示的是 Plain Text 或 JavaScript,这是根本没识别 JSX 的信号。Babel 插件装了≠自动接管,得手动指定:
- 打开任意
.jsx文件 → 点击右下角语法名(如JavaScript)→ 选Babel → JavaScript (Babel) - 想永久生效:点击同菜单里的
Open all with current extension as…→ 再选Babel → JavaScript (Babel) - 如果没看到
Babel选项,说明插件没装对:用Cmd+Shift+P/Ctrl+Shift+P输入Package Control: Install Package,搜Babel,认准 GitHub 仓库是babel-sublime(作者babel-sublime),别选已停更的React Syntax Highlighting -
.js文件里写 JSX?也得加进扩展名白名单:进Preferences → Settings – Syntax Specific,右侧加:{"extensions": ["js", "jsx", "mjs"]}
JSX 标红但代码没错?八成是 ESLint 解析器错了
不是 Babel 没起作用,而是 SublimeLinter-eslint 默认用 espree 解析器,它根本不认识 <div>。现象是:标签标红、<code>{item.name} 报 Unexpected token,但终端跑 eslint 没问题。
- 先确认你真装了
SublimeLinter和SublimeLinter-eslint;没装就别配,纯属干扰 - 如果必须保留,进
Preferences → Package Settings → SublimeLinter → Settings – User,在linters下加:"eslint": { "args": ["--parser", "@babel/eslint-parser"] } -
babel-eslint已废弃,别用;@babel/eslint-parser在 SublimeLinter 中兼容性差,真要稳定 lint,建议换 VS Code - 项目里没装
eslint-plugin-react?import React from 'react'会被标黄,补上:npm install eslint-plugin-react --save-dev
Emmet 在 JSX 里按 Tab 没反应?作用域没对上
Emmet 默认只响应 text.html.basic 作用域,JSX 文件即使语法设对了,它也当普通 JS 处理。现象:div.container+Tab 没生成标签,但 HTML 文件里正常。
- 进
Preferences → Package Settings → Emmet → Settings – User,加:{"syntax_scopes": {"javascript": ["source.js", "source.jsx", "source.js.jsx"]}} - 改完重启 Sublime,或用
Cmd+Shift+P输入Emmet: Reload - 验证位置很重要:必须在 JSX 的
return ()内部敲,比如return (<div>...</div>)里输div.box+Tab;{}里面(如{items.map(i => <div>{i.name}</div>)})Emmet 不处理
为什么 useState 补全不出来、跳转不到定义
这不是配置漏了,是能力边界。SublimeCodeIntel 或 TernJS 能扫到 node_modules/react,但无法理解 Hooks 的返回类型、不支持 useRef<t></t> 泛型推导,更没法像 LSP 那样动态分析调用链。
- 补全失效常见原因:
React没声明(import React from 'react'缺失)、文件语法没设成JavaScript (Babel)、SublimeCodeIntel没扫描到node_modules路径 - 手动加路径:进
Preferences → Package Settings → SublimeCodeIntel → Settings – User,加:"codeintel_scan_extra_dirs": ["/your/project/path/node_modules"]
,别指向node_modules/react子目录,会卡住 - 刷新索引:按
Ctrl+Shift+P输入CodeIntel: Rebuild Index - 关键提醒:JSX 是
React.createElement调用,Sublime 再怎么配,也不会检查key缺失、setState异步陷阱或组件 props 类型错误——这些得靠终端eslint或浏览器控制台


















