有没有办法在 clojure/clojurescript 中根据是否编译为 Javascript 的 JVM 字节码来有条件地编译某些内容?
我正在用 ClojureScript 编写一个小游戏,但希望保持大部分代码平台中立,以便我可以在某个时候转换为 Clojure。我还发现在 Clojure 中进行编译更适合查找代码中的错误。
通过使用 cljsbuild 使用交叉将 clj 文件转换为 cljs 的目录,我可以正常工作。
我遇到困难的地方是尝试在我的 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 ]))
我希望有一个文件具有某种形式的条件要求,具体取决于它的编译方式。这可能吗? 缺点
最佳答案
看看cljx 。它让您可以在 s 表达式前添加前缀,例如#+clj
或 #+cljs
为 Clojure 和 Clojurescript 创建不同的代码。
另外,虽然我到目前为止还没有尝试过,但是有lein-dalap它似乎依赖于纯粹的、可编译的 Clojure 来生成 Clojurescript。
关于clojure - 我可以有条件地编译 clojure/clojurescript 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20439914/