我可以有条件地编译clojure / clojurescript吗?

时间:2013-12-07 09:46:12

标签: clojure clojurescript

有没有办法在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

1 个答案:

答案 0 :(得分:5)

看看cljx。它让你用s表达式作为前缀,例如#+clj#+cljs为Clojure和Clojurescript创建不同的代码。

此外,虽然到目前为止我还没有尝试过,但lein-dalap似乎依赖于纯粹的,可编译的Clojure来生成Clojurescript。