我正试图找出ClojureScript接口和cljx预处理器之间的关系。
它们被设计成一起使用吗?还是解决同一问题的竞争对手?
是一种更好的或更标准的方式来做事情?
特别是,我想要做的是创建一个库,它可以编译为Clojure和ClojureScript (有几个变体)。我目前正在使用cljx进行此操作。
但是,我想在进一步的clj和cljx项目中包括这个库。想要了解有关这方面的信息,我主要是浏览有关跨界程序的文档,而不是cljx。
发布于 2014-11-02 16:31:17
交叉器、CLJX和特征表达式 (从最早的到最新的)都有一些特性的重叠,这些特性对于编译到clojure和clojurescript很有用。但是,Cljx和Features的应用不仅仅局限于clojurescript,而且可以维护的不仅仅是clojure-java和clojure-js,比如.net (clr,mono)。Cljx和功能表达式支持任意的“特性”,例如启用跟踪或特殊的“调试”生成。
选项(过去、现在和未来)
交叉(莱茵-cljsbuild的一部分)
lein-cljsbuild已经放弃了交叉功能。(见https://github.com/emezeske/lein-cljsbuild)
(不再推荐cljsbuild交叉服务器,并将在2014年晚些时候的v2.x中删除。)
CLJX
我使用CLJX来锁定Clojure、ClojureClr、ClojureScript (用于浏览器)和ClojureScript for NodeJS。它的工作足够好-当然比维护4个单独的代码库更好。我还没有使用cljx来处理依赖项的依赖关系,尽管一旦打包了库,它本来就是CLJX就不重要了。
特性表达式(希望能很快从clojure核心来)
这个想法借鉴了Common的特征表达式,看起来很像cljx。
截至2014年11月,这是在Release.Next,所以这听起来很有希望。CLJX和LISP的特性表达式似乎是Clojure这一预期特性的灵感来源。
个人经验
几年前,我在一个项目中使用了交叉语言,但自从CLJX问世以来,我一直在使用CLJX,并取得了很大的成功。它需要对工具和编辑器进行一些调整,但我认为它比对所有平台进行相同的代码更改要好得多。
我计划在功能表达式可用之前使用CLJX,然后重新评估。
发布于 2014-10-31 01:27:39
交叉和cljx是相互竞争的解决方案,同样的问题,不能一起使用。据我所知,cljx是首选的交叉。例如,正如@Hendekagon所指出的,lein-cljsbuild不推荐交叉字符。
chord是一个供客户端和服务器端使用的库。您可能可以使用他们的project.clj作为起点。
https://stackoverflow.com/questions/26616142
复制相似问题