【发布时间】:2023-03-20 08:38:01
【问题描述】:
我尝试使用结合了搭载、无花果和黄鼠狼的chestnut leiningen template 开始使用 ClojureScript。将我的 leiningen 安装升级到 2.5.0 后,我可以启动 clojure repl,但是在发出推荐的 run 和 browser-repl 命令后,我遇到了一个神秘的错误。好像也有core.async的问题,不知道有没有关系。
chestnut-borked.server=> (run)
2014-10-07 12:38:06.506:INFO:oejs.Server:jetty-7.6.13.v20130916
2014-10-07 12:38:06.545:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:10555
Starting figwheel.
Starting web server on port 10555 .
#<Server org.eclipse.jetty.server.Server@6cdd377c>
Compiling ClojureScript.
Figwheel: Starting server at http://localhost:3449
Figwheel: Serving files from '(dev-resources|resources)/public'
Compiling "resources/public/js/app.js" from ["src/cljs"]...
WARNING: Use of undeclared Var cljs.core.async/do-alts at line 62 file:/home/schauer /.m2/repository/org/clojure/core.async/0.1.278.0-76b25b-alpha/core.async-0.1.278.0-76b25b-alpha.jar!/cljs/core/async/impl/ioc_helpers.cljs
WARNING: Bad method signature in protocol implementation impl/Handler lock-id at line 214 file:/home/schauer/.m2/repository/org/clojure/core.async/0.1.278.0-76b25b-alpha/core.async-0.1.278.0-76b25b-alpha.jar!/cljs/core/async.cljs
WARNING: Use of undeclared Var cljs.core.async.impl.protocols/lock-id at line 217 file:/home/schauer/.m2/repository/org/clojure/core.async/0.1.278.0-76b25b-alpha/core.async-0.1.278.0-76b25b-alpha.jar!/cljs/core/async.cljs
WARNING: Use of undeclared Var chestnut-borked.dev/put! at line 14 src/cljs/chestnut_borked/dev.cljs
[... some warnings removed after first answer ...]
WARNING: Bad method signature in protocol implementation impl/Handler lock-id at line 214 resources/public/js/out/cljs/core/async.cljs
WARNING: Use of undeclared Var cljs.core.async.impl.protocols/lock-id at line 217 resources/public/js/out/cljs/core/async.cljs
Successfully compiled "resources/public/js/app.js" in 21.377 seconds.
notifying browser that file changed: /js/app.js
notifying browser that file changed: /js/out/goog/deps.js
notifying browser that file changed: /js/out/chestnut_borked/core.js
notifying browser that file changed: /js/out/chestnut_borked/dev.js
除了警告之外,到目前为止,一切都很好——Jetty 似乎已经成功启动。但是,当我尝试启动 browser-repl 时,我遇到了一个错误,并且连接似乎断开了:
chestnut-borked.server=> (browser-repl)
WARNING: Bad method signature in protocol implementation impl/Handler lock-id at line 214 file:/home/schauer/.m2/repository/org/clojure/core.async/0.1.278.0-76b25b-alpha/core.async-0.1.278.0-76b25b-alpha.jar!/cljs/core/async.cljs
ArityException Wrong number of args (0) passed to: compiler/with-core-cljs clojure.lang.AFn.throwArity (AFn.java:429)
chestnut-borked.server=> (browser-repl)
java.io.IOException: No client connected to Websocket
at weasel.repl.server$send_BANG_.invoke(server.clj:25)
at weasel.repl.websocket$send_for_eval_BANG_.invoke(websocket.clj:130)
at weasel.repl.websocket$websocket_eval.invoke(websocket.clj:109)
at weasel.repl.websocket.WebsocketEnv._evaluate(websocket.clj:34)
at cljs.repl$evaluate_form.invoke(repl.clj:113)
at cemerick.piggieback$cljs_eval$fn__5152.invoke(piggieback.clj:115)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
[...]
更新:从 lnmx 输入后,很明显 weasel 无法正常工作。如果我看一下浏览器看到的 JS 元素,显然不会加载开发脚本,也没有加载来自 weasel 的 repl.js,尽管在 app.js 中有对它们的 goog.addDependency 调用。
【问题讨论】:
-
栗子作者在这里。看来您是从 github 运行,而不是使用 Clojars 上的已发布版本?我猜是因为
(run)似乎也调用了figwheel,而在稳定版本中并非如此。 Chestnut 0.5.0 尚未发布,因为它存在已知问题。 -
是的。我使用的是 0.5 版。我将尝试使用 0.4。
-
:+1:如有任何问题,请随时在 Github 上直接报告
-
@Arne Brasseur 好的,0.4 版似乎像宣传和描述的那样工作。也许您想添加建议以暂时坚持使用 0.4 作为答案,我会接受。顺便说一句,我安装 0.5 的原因是我最初的旧 leinigen 版本(2.3.2 或其他版本),
lein new chestnut foo只会抛出一个错误。很好,您在 github 自述文件中添加了一个提示,现在它描述了未发布的功能。
标签: clojure clojurescript