不能。sublime text 本身不带编译器,clojurescript 必须先通过 shadow-cljs 或 figwheel-main 编译为 javascript 才能执行;其“运行”实为接入构建工具命令、支持错误跳转与语法高亮,而非直接解释执行。

Sublime Text 能不能直接运行 ClojureScript?
不能。ClojureScript 是编译型语言,必须先编译为 JavaScript,再由浏览器或 Node.js 执行。Sublime Text 本身不带编译器,所谓“配置环境”本质是把 cljs-build(如 shadow-cljs 或 figwheel-main)命令接入编辑器,并让错误能跳转、文件能自动关联语法高亮。
为什么装了 SublimeREPL 还跑不了 ClojureScript?
SublimeREPL 只支持 Clojure(JVM)REPL,对 ClojureScript 完全无效——它没有 JS 运行时,也不理解 shadow-cljs watch 或 figwheel-main --build dev 这类构建流程。
- ClojureScript 构建依赖 Node.js 和对应工具链,必须提前全局安装:
npm install -g shadow-cljs(推荐)或npm install -D figwheel-main - 确保终端里能直接运行
shadow-cljs --version,否则 Sublime 构建系统会报'shadow-cljs' is not recognized - Sublime 启动后不会自动继承新 PATH,改完环境变量必须重启编辑器
- 别试图用 Clojure 的构建系统(如
clj.bat)去跑.cljs文件——语法解析失败,连括号匹配都会错乱
如何让 .cljs 文件正确高亮并支持基础跳转?
原生 Sublime 不识别 .cljs,需手动绑定语法和插件:
- 安装
ClojureSyntax插件(支持.cljs高亮),而非旧版Clojure语法包 - 在
Preferences → Settings – User中添加:{ "extensions": ["cljs", "cljc"], "syntax": "Packages/ClojureSyntax/ClojureSyntax.sublime-syntax" } -
Ctrl+Click无法跳转到定义(ClojureScript 无静态符号表),但可装SublimeCodeIntel并禁用其他语言支持,仅保留clojurescript引擎——不过它常卡死,不建议生产环境启用 - 更可靠的做法:用
shadow-cljs compile后打开生成的.js文件,靠 Sublime 原生 JS 支持做调试定位
怎么配一个可用的 shadow-cljs 构建系统?
别照搬网上 clj.bat 模板,ClojureScript 构建必须指定 build ID 和输出路径:
- 新建
Tools → Build System → New Build System,内容如下:{ "cmd": ["shadow-cljs", "compile", "app"], "file_regex": "^\s*([^:]*):([0-9]+):([0-9]+):\s*(.*)$", "selector": "source.cljs", "working_dir": "${project_path}", "shell": true } -
"app"是shadow-cljs.edn里定义的 build ID,不是固定值,必须和项目一致 -
working_dir必须设为项目根目录(含shadow-cljs.edn),否则找不到配置 -
file_regex必须匹配 shadow-cljs 的错误格式,例如:src/main/example/core.cljs:32:5: Invalid token;网上常见的 Python 正则会失效 - 保存为
ShadowCLJS.sublime-build,然后右键.cljs文件 →Set Build System→ 选它
真正麻烦的从来不是配置几行 JSON,而是 shadow-cljs.edn 里 build 输出路径、:devtools 开关、:target 类型这些细节一旦写错,Sublime 就只报“exit code 1”,根本看不出哪行代码触发了编译失败。











