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

标签 clojure clojurescript

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

相关文章:

function - 使用或条件在 clojure 中循环

clojure - 具有 leiningen 的 clojurescript 中的依赖项

eclipse - 无法在 Eclipse 中关闭 Clojure 括号自动完成

clojure - 在compojure中实现oauth2,如何在响应用户请求之前等待第二个oauth2回调?

clojure - clojure 映射和关键字如何成为一个函数

json - 为什么 Reagent 以三种方式呈现 JSON?

clojurescript - 从 Javascript 对象获取属性

string - Clojure 中将字符串转换为整数向量的功能解决方案

clojure - reducer (在 Clojure 中)是否解决了 Guy Steele 概述的缩放文件夹累积问题?

clojure - 用于操作 clojure map 的“jQuery”类型函数