Sublime Text 4 用户必须卸载 JavaScriptNext,因其会覆盖原生语法支持,导致?.、??、装饰器等识别失败;ST3 用户也应优先选用持续维护的Babel插件。

Sublime Text 4 用户别装 JavaScriptNext - ES6 Syntax,它会覆盖原生语法支持,导致 ?.、??、装饰器等识别失败;ST3 用户也应优先选 Babel,而非 JavaScriptNext。
确认你用的是 Sublime Text 4 还是 3
这是最关键的前置判断。打开一个含 async function 或 export default class 的 .js 文件,看右下角状态栏显示的语法名:
- 显示
JavaScript(非括号后缀)→ 你用的是 ST4,原生已支持 ES6+,JavaScriptNext必须卸载 - 显示
JavaScript (Babel)→ 已有更稳定方案,JavaScriptNext冗余 - 显示
JavaScriptNext或高亮错乱(如?.标红、export type不识别)→ 很可能是旧版残留,建议清理
ST3 和 ST4 都该装 Babel 插件
Babel 是目前最通用、维护最活跃的替代方案,它基于真实 Babel 解析器,能准确理解现代 JS 结构,不只是高亮,还影响括号匹配、注释着色、跳转准确性:
- 按
Ctrl+Shift+P(macOS 为Cmd+Shift+P),输入Install Package回车 - 搜索
Babel,选择安装Babel(作者为sublimetext-plugins) - 打开任意
.js或.jsx文件,点击右下角语法名 →Babel→JavaScript (Babel) - 再点一次右下角语法名 →
Open all with current extension as→Babel→JavaScript (Babel),设为默认
装完不用重启,但若 import { a } from 'b' 仍不识别,检查是否被项目级 sublime-project 文件中的 "syntax": "Packages/JavaScript/JavaScript.tmLanguage" 覆盖了。
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
别碰 JavaScriptNext 的几个硬性原因
它不是“过时”,而是和 ST4 原生引擎冲突,且早已停止维护:
- ST4 的
JavaScript.tmLanguage是基于 Tree-sitter 的语法定义,JavaScriptNext仍用老式正则规则,强行启用会导致class field、private #field、export type等直接不解析 - 即使手动放进
Packages/JavaScriptNext/目录,也会被 ST4 启动时静默禁用,并在控制台报ignored package JavaScriptNext - 与
Babel共存时,.js文件可能随机切换语法,造成括号配对失效、注释变色异常、Ctrl+Click跳转失败
真正提升效率的不是颜色,而是底层能力
语法高亮只是表象。现代 JS 开发中容易被忽略的其实是这些:
-
import路径能否Ctrl+Click跳转?Babel支持,JavaScriptNext不支持 - 重命名一个变量时,是否全文件同步更新?这依赖语言服务器,
Babel可配合TernJS或SublimeLSP实现 -
??=这种语法,高亮可能不报错,但ESLint会立刻提示你 Node 版本不支持——装SublimeLinter-eslint比换高亮插件重要得多
如果你还在手动拖 .tmLanguage 文件、反复切语法、纠结 React ES6 Snippets 和 Babel 谁优先,说明底层语法支持没理顺——先清掉 JavaScriptNext,再让 Babel 成为唯一 .js 处理者,后面的事才真正可控。

















