请在2024 年 Clojure 状态调查!中分享您的想法。

欢迎!请查看关于页面获取更多关于该功能的信息。

0
ClojureScript

当一个命名空间需要自己时,编译会无限期挂起且不显示错误信息。
最好能抛出一个错误,或者至少打印一条警告消息给用户。

5 答案

0

评论者为:mfikes

无法在 1.9.908 或 1.9.946 中重现

{{src/itself/core.cljs}}

(ns itself.core (:require itself.core))

$ java -cp cljs.jar:src clojure.main -m cljs.repl.node ClojureScript Node.js REPL 服务器正在监听 54877。要退出,请输入::cljs/quit cljs.user=> (require 'itself.core) clojure.lang.ExceptionInfo: 断言失败:检测到循环依赖,cljs.user -> itself.core -> itself.core

0

评论者为:frozenlock

使用 1.9.946 仍然出现相同的行为。
使用 figwheel 和 uberjar 尝试过。
两者都会无限期挂起且不显示错误信息。

这可能是工具链的问题,例如 Leiningen 吗?

0

评论者为:mfikes

是的。使用 Figwheel,我会尝试禁用 {{:autoload}}(见https://github.com/bhauman/lein-figwheel/wiki/Configuration-Options#client

如果这允许你将其隔离到 Figwheel,那么也许可以将这个 JIRA 关闭。

0

评论者为:frozenlock

在这种情况下,变化不会太大:当运行Figwheel或Uberjar时,它会挂起,因为它无法完成cljs编译。

我用lein-cljsbuild测试过,我遇到了相同的问题。
我将检查是否是cljsbuild团队的问题。

0
参考:https://clojure.atlassian.net/browse/CLJS-2363(由 alex+import 报告)
...