0

我创建了一个 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。根据他们的文档,我输入shadow-cljs clj-repl另一个终端,该终端会打开一个 REPL,但不会打开一个连接到我的浏览器或项目的终端。如果我输入(js/alert "hi m8")REPL,它会响应:

Syntax error compiling at (REPL:2:1).
No such namespace: js

我的问题是,我如何使用它说已经启动的 nREPL,最好如何在 IntelliJ 的集成 REPL 中访问它?

谢谢。

更新

已经让它工作如下,但如果有人知道如何让它在 Cursive / IntelliJ 中工作:

在此处输入图像描述

那将是超级的。

4

2 回答 2

3

nREPL 连接将始终以 Clojure 模式启动。您可以通过调用将其切换为使用 CLJS,(shadow.cljs.devtools.api/repl :app)并通过:cljs/quit.

但是,您应该连接到 "Clojure REPL" -> "Remote",然后使用 port 连接到 "localhost" 8777re-frame这在模板中通过配置为默认值shadow-cljs.edn :nrepl {:port 8777}

您发布的屏幕截图看起来像您连接到lein创建的随机端口。这也可以,但需要对nREPL 中间件进行额外配置。

于 2019-09-03T16:02:02.927 回答
0

我想通了。您必须shadow-cljs cljs-repl app在另一个终端中使用。

于 2019-09-01T13:50:50.973 回答