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

Gar*_*don 7 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]))
Run Code Online (Sandbox Code Playgroud)

虽然这是clj工作所必需的

(ns gaz.system
    (:require
        [core.async ]))
Run Code Online (Sandbox Code Playgroud)

我希望有一个带有某种形式条件要求的文件,具体取决于它是如何编译的.这有可能吗?精读

xsc*_*xsc 5

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

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