2024 年 Clojure 调查问卷!中分享你的想法。

欢迎!请参阅关于页面以了解更多关于如何工作的信息。

0
ClojureScript
给定以下项目


;; 文件 src/foo.cljs
(ns foo
  (:require [cljs.js :as cljs]))

(defn -main []
  (enable-console-print!)
  (println "hello"))



;; 文件 deps.edn
{:deps {org.clojure/clojure {:mvn/version "1.10.0-RC5"}
        org.clojure/clojurescript {:mvn/version "1.10.439"}
        }
 :aliases {:build-simple {:main-opts ["-m" "cljs.main" "-O" "simple" "-co" "{:pretty-print,false,:optimize-constants,true,:static-fns,true}" "-d" "out" "-c" "foo"]}}}


看到以下堆栈跟踪


主线程中的异常 clojure.lang.ExceptionInfo: 编译文件失败:out/cljs/core.cljc {:file #object[java.io.File 0x7e7f3cfd "out/cljs/core.cljc"]}
...
原因:clojure.lang.ExceptionInfo:断言失败:检测到循环依赖,cljs.core -> cljs.core
...
原因:java.lang.AssertionError:断言失败:检测到循环依赖,cljs.core -> cljs.core
...


当将 {{:optimize-constants}} 设置为 {{false}} 或当不要求 {{cljs.js}} 时,此异常不会发生。

此设置已在 CLJS 网站上的以下指南中提出:https://script.clojure.org/guides/self-hosting

1 答案

0
参考:https://clojure.atlassian.net/browse/CLJS-3021(由 borkdude 报告)
...