Mat*_*w H 11 clojure clojurescript
我刚刚编写了一些ClojureScript代码,但却发现我无法访问我project.clj
的依赖项中列出的库之一.这是正确的,即你不能使用CLJS的Clojure库,除非它们是专门设计的允许它吗?
如果是这样,需要多少额外的工作来获取不使用任何Java互操作的Clojure库,并且它本身就是有效的ClojureScript代码,并使其可以从ClojureScript中使用?从环顾GitHub看,许多libs似乎都有clj和cljs代码的独立源目录.可以将这样的库添加到我的project.clj
并立即从任一平台使用吗?
从“project.clj”依赖条件可以通过ClojureScript适用/可见/可用,例如,看看“ jayq ”。您可以将其包含在“project.clj”中:
(defproject xyz/xyz "0.1.0-SNAPSHOT"
:dependencies [[clj-time "0.4.3"]
[jayq "2.2.0"]
....
Run Code Online (Sandbox Code Playgroud)
然后在 ClojureScript 文件中使用它:
(ns xyz.some.cljs
(:require ...
...
[clojure.browser.repl :as repl]
[jayq.core :as jq])
Run Code Online (Sandbox Code Playgroud)
虽然“jayq”不是“后端”意义上的“Clojure”库,因为它只是包装了 JavaScript,但它是在 ClojureScript 端使用“project.clj”依赖项的一个示例。
此外,大部分核心和几个非核心库已经移植到 ClojureScript 端:
其他 Clojure 库必须符合 ClojureScript 子集才能在 ClojureScript 中工作。
克隆ClojureScript 存储库并了解它支持的内容是值得的(如果您喜欢冒险,还可以添加自己的功能:)
ClojureScript 依赖项通常基于“前端”(包括从后端移植的那些)。换句话说,最终目标是由 V8 编译并作为 JavaScript 运行,因此可以使用任何可以由 ClojureScript 编译器(上面的 repo)编译的东西。