【问题标题】:Clojure / ClojureScript Crossovers and cljxClojure / ClojureScript 交叉和 cljx
【发布时间】:2014-10-28 18:45:16
【问题描述】:

我试图弄清楚 ClojureScript 交叉和 cljx 预处理器之间的关系。

它们是否设计为一起使用?还是针对同一问题的竞争对手解决方案?

一种正在成为首选或更标准的做事方式吗?

我特别想做的是创建一个可以编译为 Clojure 和 ClojureScript(有几个变体)的库。我目前正在为此使用 cljx。

但是我想将该库包含在进一步的 clj 和 cljx 项目中。寻找这方面的信息,我主要是遇到交叉的文档,而不是 cljx。

【问题讨论】:

  • cljx 旨在替代交叉,它们不能一起使用,并且 lein-cljsbuild 打算弃用交叉(很遗憾,因为它们很好而且简单)
  • 我注意到一个新库,您可能会考虑:lein-dalap,它的灵感来自 cljx。

标签: clojure leiningen clojurescript cljx


【解决方案1】:

CrossoversCLJXFeature Expressions(从最旧到最新)具有一些可用于编译为 clojure 和 clojurescript 的功能重叠。但是,Cljx 和 Features Expressions 承诺的不仅仅是 clojurescript,而且可以维护的不仅仅是 clojure-java 和 clojure-js,例如 .net (clr, mono)。 Cljx 和特征表达式启用任意“特征”,例如启用跟踪或特殊“调试”构建。

选项(过去、现在和未来)

分频器(lein-cljsbuild 的一部分)

lein-cljsbuild 已弃用 Crossovers 功能。 (见https://github.com/emezeske/lein-cljsbuild

(cljsbuild 交叉已弃用,将在 v2.x 中移除 [2014 年晚些时候推出]。)

CLJX

我使用CLJX 来定位Clojure、ClojureClr、ClojureScript(用于浏览器),并使用ClojureScript 来定位NodeJS。它运行得很好——当然比维护 4 个独立的代码库要好。我没有使用 CLJX 来做依赖的依赖,但是一旦你打包了一个库,它最初是 cljx 应该没关系。

特征表达式(希望 clojure 核心即将推出)

这个想法借鉴了 Common Lisp 的 feature expressions,看起来很像 cljx。

截至 2014 年 11 月,这是在 Release.Next 中,所以这听起来很有希望。似乎 CLJX 和 LISP 的特征表达式是 Clojure 预期功能的灵感来源。

个人经历

几年前我在一个项目中使用了 Crossovers,但自从 CLJX 出现以来,我一直在使用 CLJX 并取得了巨大的成功。它需要对工具和编辑器进行一些调整,但我相信这比为所有平台更改相同的代码要好得多。

我计划在特征表达式可用之前使用 CLJX,然后重新评估。

【讨论】:

    【解决方案2】:

    Crossovers 和 cljx 是同一问题的竞争对手解决方案,不能一起使用。据我所知,cljx 优于交叉。例如,正如@Hendekagon 指出的那样,lein-cljsbuild 已弃用交叉。

    chord 是一个供客户端和服务器端使用的库。您可能可以使用他们的project.clj 作为起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多