使用Figwheel-main与Clojure Tools无法获取Node.js的ClojureScript REPL提示符
Figwheel + Clojure Tools Node.js REPL 无法进入提示符的修复方案
问题根源
原生cljs.main能正常启动REPL,说明业务代码无错误。问题出在Figwheel的配置缺失——针对Node.js环境,必须明确指定REPL连接环境,否则Figwheel无法正确建立和Node进程的交互通道。
修复步骤
1. 修正dev.cljs.edn配置
在配置中添加:repl-env :node参数,这是让Figwheel适配Node.js REPL的关键:
{:main cljs-example.foo :target :nodejs :repl-env :node ; 必须指定Node作为REPL环境 :optimizations :none :pretty-print true :source-map true :asset-path "js/dev" :output-to "resources/public/js/dev.js" :output-dir "resources/public/js/dev"}
2. 版本兼容性检查(可选)
当前使用的Figwheel Main 0.2.18与ClojureScript 1.11.60兼容,但如果修复后仍有异常,可升级Figwheel到最新稳定版(如0.2.19),修改deps.edn的:fig别名:
:aliases {:fig {:extra-deps {com.bhauman/figwheel-main {:mvn/version "0.2.19"}}}}
3. 简化启动流程(可选)
在deps.edn中添加专用启动别名,减少命令输入:
:aliases {:fig {:extra-deps {com.bhauman/figwheel-main {:mvn/version "0.2.19"}}} :fig-node {:main-opts ["-m" "figwheel.main" "-b" "dev" "-r"]}}
之后只需执行clj -M:fig:fig-node即可启动REPL。
验证效果
修改配置后重新执行原启动命令:
clj -M:fig -m figwheel.main -b dev -r
此时应能正常进入cljs.user=>提示符,且代码修改后Figwheel会自动编译并同步到Node.js进程。
内容的提问来源于stack exchange,提问作者customcommander
相关产品推荐
相关产品推荐

