我在使用 boot-clj nREPL 时遇到了一些麻烦。我在 EMACS 中使用 cider-jack-in 进行连接,然后在顶部显示正确的端口,在底部显示 'boot.user=>' 但我无法从 '../rpc.cljs 加载 cljs 函数' 页。简而言之,我不知道如何导航到那个地方。我厌倦了使用 '(load "...")' 但我什至无法弄清楚当前的工作目录。我在任何地方都找不到有关使用 Boot REPL 的教程。我已经用'boot repl'从命令行尝试过,然后用'(def p(future(boot(dev))))'加载,但仍然完全迷失了。
简而言之,有人可以帮我指出正确的方向吗?我正在寻找如何更改当前目录、查找当前工作目录以及从 .cljs 文件加载函数。
:::EDIT::: 我找到了 boot-cljs-repl 并试图将其连接起来。在 Hoplon/Castra 模板中,它已经包含在“build.boot”文件中,但是按照他们 GitHub 上的说明,它仍然无法正常工作。要将其连接到项目,请在“build.boot”文件中添加以下内容,第二部分用于引导任务“Dev”
(require
'[adzerk.boot-cljs-repl :refer [cljs-repl cljs-repl-env start-repl]]"
...
...
(reload)
(cljs-repl-env)
(cljs)))
...
然后,您应该能够使用 cider-jack-in 来加载 CLJS repl 并使用命令 '(def r (future (boot (dev))))' 后跟 (start-repl) 但每当我运行时我有错误。我已经尝试过 cider-jack-in-clojurescript 和之前的那个,但它似乎在连接到 CLJS repl 时出错。
boot.user> << started Weasel server on ws://127.0.0.1:38456 >>
<< waiting for client to connect ...
java.lang.NullPointerException
at clojure.java.io$make_parents.invokeStatic(io.clj:443)
at clojure.java.io$make_parents.doInvoke(io.clj:438)
我将继续尝试不同的方法,但到目前为止似乎卡住了。
:::编辑:::
如果你使用 '(cljs-repl)' 而不是 '(cljs-repl-env)',我更能发现问题,而不是在 bash 中启动 'boot dev' 后可以连接然后你在苹果酒 repl 中输入“(start-repl)”,它会启动一个 CLJS repl。我现在遇到的问题是,如果我尝试像 Clojure REPL 一样使用 REPL,它就不太好用了。如果你按 Cc Cc cider 只是说,如果在一个 .cljs 文件中,它需要一个 Clojurescript REPL,即使它是。
干杯,