mjml插件无反应大概率因cli未配置好:需确认文件后缀为.mjml、右下角语言模式设为mjml,且全局安装mjml cli(npm install -g mjml),macos用户还需配置mjml.executablepath路径。

MJML 插件装了但没反应?大概率是 CLI 没配好,不是插件问题。
为什么 MJML 语法高亮不生效
VSCode 的 MJML Language Support 插件本身只提供语法识别和基础提示,它不自带编译能力。如果打开 .mjml 文件后没有高亮、没有标签补全、右键也看不到 Preview MJML,说明插件没正确激活——最常见原因是 VSCode 没识别到文件类型。
- 确认文件后缀确实是
.mjml(不是.html或.xml) - 右下角状态栏检查语言模式是否显示为
MJML;如果不是,点击它 → 选择Configure File Association for '.mjml'→ 设为MJML - 某些旧版插件或冲突插件(如 XML Tools)会劫持
.mjml关联,卸载或禁用后再试 - 重启 VSCode 后首次打开
.mjml文件,插件才真正加载语法定义
Preview MJML 右键菜单不出现
这个功能依赖本地 mjml 命令行工具,插件只是调用它。即使语法高亮正常,Preview MJML 仍可能灰掉或缺失。
- 终端执行
mjml --version,必须返回类似4.15.2的版本号;若报command not found,说明 CLI 未全局安装 - 运行
npm install -g mjml(Node.js ≥18),注意不要加--legacy-peer-deps,否则可能装错版本 - macOS + nvm 用户:全局安装后
mjml命令可能不在 PATH 中,需手动配置mjml.executablePath到settings.json,路径形如"/Users/xxx/.nvm/versions/node/v18.19.0/bin/mjml" - Windows 用户:确保 npm 全局 bin 目录(如
C:\Users\XXX\AppData\Roaming\npm)已加入系统 PATH
预览窗口空白或报错 “MJML compilation failed”
预览失败通常不是模板写错了,而是环境或路径问题。错误信息里如果含 Cannot find module 'mjml' 或 spawn mjml ENOENT,就是 CLI 调用失败。
- 检查
.mjml文件是否在工作区根目录下——部分 VSCode 版本对子目录中文件的 CLI 调用路径解析异常 - 预览时插件会临时生成 HTML 并用内置 WebView 渲染,若模板里用了
<mj-include></mj-include>且引用路径是相对路径(如./components/header.mjml),而当前文件不在项目根目录,就会找不到文件 - 避免在 MJML 中直接写内联
style属性带 CSS 变量(如color: var(--primary)),MJML 编译器不支持,会静默失败 - 右键预览失败时,打开 VSCode 输出面板(
Ctrl+Shift+U),切换到MJML频道,看具体错误输出,比弹窗提示更准确
想边写边看效果,但不想每次右键点 Preview
VSCode 自身不支持 MJML 的「保存即预览」,但可以靠设置 + 小技巧模拟接近实时的效果。
- 启用自动保存:
files.autoSave设为onFocusChange或afterDelay,减少手动 Ctrl+S 频次 - 把预览窗口固定为右侧分栏(拖动预览标签到编辑器右侧区域),再按
Ctrl+K V(英文输入法下)可快速呼出 Markdown 预览——虽然不是 MJML,但能帮你顺手检查嵌套的 Markdown 内容是否被正确转义 - 更可靠的方式:在终端开个监听命令,例如
npx mjml -w input.mjml -o output.html,配合 Live Server 插件直接浏览器刷新查看 - 注意:VSCode 内置预览不支持 Outlook 条件注释(
<!--[if mso]>...<![endif]-->)渲染,这类兼容性验证必须导出 HTML 后在真实邮件客户端中测试
真正卡住开发进度的,往往不是语法写错,而是 CLI 路径没通、文件关联被抢、或预览机制对相对路径太敏感——这些细节不排查清楚,再多的智能提示也没用。











