有没有办法在clojure / clojurescript中有条件地编译一些东西,这取决于你是否正在编译Javascript的JVM字节码?
我正在用ClojureScript编写一个小游戏,但是希望保持大部分代码平台的中立,所以我可以在某个时候转换为Clojure。我还发现在Clojure中编译更适合在我的代码中查找错误。
通过使用cljsbuild使用交叉转换为cljs的clj文件目录,我可以正常工作。
我失败的地方是尝试在我的clj文件中使用core.async。 cljs需要这个:
(ns gaz.system
(:require-macros [cljs.core.async.macros :refer [go]])
(:require
[cljs.core.async]))
虽然这需要clj才能工作
(ns gaz.system
(:require
[core.async ]))
我希望有一个带有某种形式条件要求的文件,具体取决于它的编译方式。这有可能吗? CON
答案 0 :(得分:5)
看看cljx。它让你用s表达式作为前缀,例如#+clj
或#+cljs
为Clojure和Clojurescript创建不同的代码。
此外,虽然到目前为止我还没有尝试过,但lein-dalap似乎依赖于纯粹的,可编译的Clojure来生成Clojurescript。