Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure/ClojureScript交叉点和cljx_Clojure_Leiningen_Clojurescript_Cljx - Fatal编程技术网

Clojure/ClojureScript交叉点和cljx

Clojure/ClojureScript交叉点和cljx,clojure,leiningen,clojurescript,cljx,Clojure,Leiningen,Clojurescript,Cljx,我试图找出ClojureScript交叉和cljx预处理器之间的关系 它们是否设计为一起使用?还是针对同一问题的对立解决方案 一种方式是否正在成为人们首选的或更标准的做事方式 我特别想做的是创建一个库,可以编译为Clojure和ClojureScript(有几个变体)。我目前正在为此使用cljx 但是我想在进一步的clj和cljx项目中包括这个库。在寻找有关这方面的信息时,我主要看到了crossovers的文档,而不是cljx。crossovers和cljx是解决同一问题的竞争解决方案,不能一起

我试图找出ClojureScript交叉和cljx预处理器之间的关系

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

一种方式是否正在成为人们首选的或更标准的做事方式

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


但是我想在进一步的clj和cljx项目中包括这个库。在寻找有关这方面的信息时,我主要看到了crossovers的文档,而不是cljx。

crossovers和cljx是解决同一问题的竞争解决方案,不能一起使用。据我所知,cljx比crossovers更受欢迎。例如,正如@Hendekagon所指出的,
lein cljsbuild
已经弃用了交叉

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

,并且(从最早到最新)有一些用于编译clojure和clojurescript的功能重叠。但是,Cljx和特性表达式不仅仅适用于clojurescript,而且可以维护ClojureJava和ClojureJS,例如.net(clr,mono)。Cljx和功能表达式支持任意“功能”,例如启用跟踪或特殊的“调试”构建

选项(过去、现在和未来) 交叉点(lein cljsbuild的一部分) lein cljsbuild不推荐使用交叉功能。(见附件)

(不推荐使用cljsbuild转换,并将在v2.x中删除[将于2014年晚些时候推出]。)

CLJX 我曾经针对Clojure、ClojureClr、ClojureScript(针对浏览器)和ClojureScript(针对浏览器)。它工作得足够好——当然比维护4个独立的代码库要好。我没有使用CLJX来处理依赖项的依赖项,尽管一旦打包了一个库,它最初是CLJX就不重要了

功能表达式(希望很快来自clojure core) 这个想法借鉴了CommonLisp,看起来很像cljx

截至2014年11月,这一数字还在上升,因此这听起来很有希望。CLJX和LISP的特性表达式似乎是Clojure这一预期特性的灵感来源

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


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

CLJX是用来替代crossovers的,它们不能一起使用,lein cljsbuild打算反对crossovers(很遗憾,因为它们既好又简单)。我注意到一个新的库,您可能会考虑:它是受CLJX启发的。