我使用以下方法创建了一个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。如果我在REPL中输入(js/alert "hi m8")
,它将响应:
Syntax error compiling at (REPL:2:1).
No such namespace: js
我的问题是,我该如何使用它已经启动的nREPL,最好是如何在IntelliJ的集成REPL中访问它?
谢谢。
已经按照如下方式工作了,但是如果有人知道如何在Cursive / IntelliJ中使它在这里工作:
那太好了。
答案 0 :(得分:0)
我知道了。您必须在另一个终端中使用shadow-cljs cljs-repl app
。
答案 1 :(得分:0)
nREPL连接将始终以Clojure模式开始。您可以通过调用(shadow.cljs.devtools.api/repl :app)
将其切换为使用CLJS,然后通过:cljs/quit
返回Clojure模式。
但是,您应该使用端口8777
连接到“ Clojure REPL”->“ Remote”,然后连接到“ localhost”。在re-frame
模板中,通过shadow-cljs.edn
:nrepl {:port 8777}
将其配置为默认值。
您发布的屏幕截图看起来就像您已连接到创建的随机端口lein
一样。这也可以使用,但是需要对nREPL middleware进行其他配置。