我使用以下命令创建了一个ClojureScript项目:
lein new re-frame my-project
然后,我使用Cursive在IntelliJ中打开了它。在终端中键入lein dev后,它会提示我以下消息:
shadow-cljs - HTTP server available at http://localhost:8280
shadow-cljs - server version: 2.8.52 running at http://localhost:9630
shadow-cljs - nREPL server started on port 8777
shadow-cljs - watching build :app
[:app] Configuring build.
[:app] Compiling ...
[:app] Build completed. (203 files, 1 compiled, 0 warnings, 3.65s)我可以使用指向REPL的链接打开服务器,但不能使用连接到浏览器的nREPL打开服务器。在他们的documentation之后,我在另一个终端输入shadow-cljs clj-repl,这将打开一个REPL,但不是连接到我的浏览器或项目的一个。如果我在REPL中键入(js/alert "hi m8"),它会响应:
Syntax error compiling at (REPL:2:1).
No such namespace: js我的问题是,我如何使用它所说的已经启动的nREPL,最好是我如何在IntelliJ的集成REPL中访问它?
谢谢。
更新
我已经让它像下面这样工作了,但是如果有人知道如何在Cursive /IntelliJ中让它工作:

那就太好了。
发布于 2019-09-04 00:02:03
nREPL连接将始终以Clojure模式启动。您可以通过调用(shadow.cljs.devtools.api/repl :app)切换到使用CLJS,并通过:cljs/quit返回到Clojure模式。
但是,您应该连接到"Clojure REPL“远程主机”->“,然后使用端口8777连接到”本地主机“。这通过shadow-cljs.edn :nrepl {:port 8777}在re-frame模板中配置为默认设置。
您发布的屏幕截图看起来像是连接到了lein创建的随机端口。这也是可行的,但需要对nREPL middleware进行额外的配置。
发布于 2019-09-01 21:50:51
我猜到了。您必须在另一个终端中使用shadow-cljs cljs-repl app。
https://stackoverflow.com/questions/57746492
复制相似问题