ejs语法高亮不生效主因是.ejs后缀未绑定ejs语法,需安装插件后完整重启sublime text,再通过右下角“open all with current extension as…→ejs”生成含{"extensions":["ejs"]}的ejs.sublime-settings文件。

EJS 语法高亮不生效,90% 是因为 .ejs 后缀没绑定到 EJS 语法,不是插件装错了,也不是主题问题——重启 + 手动绑定才是关键动作。
安装 EJS Syntax Highlighting 后右下角没出现 EJS 选项
插件只提供 EJS.sublime-syntax 定义,不自动注册语言菜单项。Sublime Text 3/4 必须完整重启才能加载新语法,仅重开文件或窗口无效。
- 确认插件已安装:按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)→ 输入Package Control: List Packages→ 查看列表中是否有EJS Syntax Highlighting - 检查是否被禁用:打开
Preferences → Package Control → Disable Package,确认该插件不在其中 - macOS 用户若通过 Dock 启动 Sublime,可能因 PATH 缺失导致 Package Control 加载失败;改用终端执行
subl启动可绕过 - 别碰
Packages/HTML/HTML.tmLanguage或User/HTML.sublime-settings—— 强行加"extensions": ["ejs"]会让 Sublime 把所有.ejs当纯 HTML 解析,块直接变灰白
点右下角选了 EJS,但下次打开还是显示 HTML
手动切换只影响当前视图,不会持久化。真正让所有 .ejs 文件默认用 EJS 语法,靠的是生成并校验 EJS.sublime-settings 文件。
- 先打开一个
.ejs文件,确认右下角能点出EJS选项(说明插件已就位) - 点击右下角语言名 →
Open all with current extension as…→ 再选EJS - 该操作会在
Packages/User/下生成EJS.sublime-settings,内容必须是:{"extensions": ["ejs"]} - 注意:
"extensions"的值必须是数组,不能写成"ejs"(字符串)或[".ejs"](带点号) - 验证方式:新建文件 → 输入
<h1>OK</h1>→ 保存为test.ejs→ 看是否有独立颜色(如橙色),而非灰白
装了插件却部分标签失色或高亮错乱
冲突比失效更难排查。多个 EJS 相关包共存时,语法 scope 会被覆盖,导致 、注释或转义语法识别失败。
- 禁用旧包:
Sublime-EJS(多年未更新)、ejst、sublime-ejs(易覆盖source.ejsscope) - 别手动下载
.sublime-package丢进Packages/—— 缺少 Package Control 加载流程,语法注册常失败 - 若用了
SublimeLSP或自定义构建系统,检查是否把.ejs映射成了source.js(会干扰模板标签识别) - 极少数精简主题不支持
source.ejsscope(比如某些定制主题),换回Default或Monokai主题测试是否恢复
Ctrl+B 运行 .ejs 文件报错 Cannot find module
.ejs 是模板文件,不是可执行脚本。Sublime 的 Ctrl+B 构建系统只适用于 .js 入口文件(如 app.js),不是用来跑 .ejs 的。
- 确保你的构建系统(如
Nodejs.sublime-build)的"selector"是"source.js",而非"source.ejs" - 运行 EJS 项目,应执行
app.js(含app.set('view engine', 'ejs')和res.render()) - 常见报错根源:没建
views/目录,或漏设app.set('views', path.join(__dirname, 'views'))—— 这是 Express 配置问题,和 Sublime 无关
最容易被忽略的是:一旦你曾手动点过右下角并选过 HTML,Sublime 就会把这个选择“锁死”在当前视图里——哪怕后来配好了 EJS.sublime-settings,它也坚持用旧的 HTML。此时需关闭文件再重新打开,或重启 Sublime 才能刷新绑定状态。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











