必须安装作者为babel-sublime、GitHub仓库为babel/babel-sublime的Babel插件,而非“ReactJS”“Babel Snippets”等停更或功能不符的插件;安装后须手动将.jsx文件绑定至Babel → JavaScript (Babel)语法,否则Sublime默认不解析JSX,导致标签、{}插值等完全不高亮。

装哪个插件?只认 babel-sublime,别碰“ReactJS”“Babel Snippets”
Sublime 默认根本不解析 JSX,装错插件等于白忙。必须装 GitHub 仓库地址为 babel/babel-sublime、作者显示为 babel-sublime 的那个包——不是“Babel Sublime”(拼写差一个空格)、不是“ReactJS”(已停更)、也不是“Babel Snippets”(只提供片段,不改语法定义)。装错后常见现象:右下角没出现 Babel → JavaScript (Babel) 选项,或点开后标签灰显、className 标红、括号不配对。
- 用
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)唤出命令面板 - 输入
Package Control: Install Package回车 - 搜
Babel,在结果里确认作者栏是babel-sublime再安装
装完为啥 .jsx 还是白底黑字?必须手动绑定语法,不能靠“自动识别”
插件装对只是第一步。Babel 插件不会自动接管 .jsx 后缀,Sublime 仍把它当 Plain Text 或原生 JavaScript 处理。右下角显示的语法名必须是 Babel → JavaScript (Babel),否则 JSX 标签、{} 插值、Fragment 都不会高亮。
- 打开任意
App.jsx文件,点击右下角当前语法名(比如显示Plain Text) - 选
Open all with current extension as…→Babel → JavaScript (Babel) - 更稳妥的做法:打开
.jsx文件 →Preferences → Settings – Syntax Specific→ 在右侧 JSON 加一行:"syntax": "Packages/Babel/JavaScript (Babel).sublime-syntax" - ⚠️ 路径必须和
Preferences → Browse Packages里实际文件夹名完全一致:如果是babel-sublime(小写),就得写Packages/babel-sublime/...;大小写、斜杠、空格都不能错
Emmet 在 JSX 里不展开 div.container+Tab?改 syntax_scopes 才生效
Emmet 默认只响应 source.js 和 text.html.basic 作用域,而 .jsx 文件设成 JavaScript (Babel) 后,实际作用域是 source.jsx,不匹配就完全失效。
- 菜单 →
Preferences → Package Settings → Emmet → Settings – User - 在用户设置 JSON 中添加:
"syntax_scopes": {"javascript": ["source.js", "source.jsx", "source.js.jsx"]} - 保存后,执行
Cmd+Shift+P→ 输入Emmet: Reload(或重启 Sublime) - 验证:在
return (后输入ul>li*3+Tab,应生成完整列表结构;注意{}里的 JS 表达式 Emmet 不处理
{user.name} 还是白的?先排除 Plain Text 模式和 ESLint 干扰
花括号内容不着色,90% 是文件根本没被识别为 JSX 语法,剩下 10% 是校验器报错干扰视觉判断。这两类问题互不相关,得分开排查。
- 新建未保存文件、扩展名不是
.js或.jsx、右下角语法没切对 → 都会导致整块变Plain Text,{}必然白底 -
Unexpected token错误不是 Babel 的事,大概率是SublimeLinter-eslint在运行,但它默认用旧版babel-eslint解析器,不认识 JSX。删掉项目根目录.eslintrc.js里的parser: "babel-eslint",换成parser: "@babel/eslint-parser" - 别全局改
extensions字段:有人想“一劳永逸”在用户设置里加"extensions": ["js", "jsx"],结果导致普通.js文件也套 JSX 规则,箭头函数反而标红


















