ClojureScript与 Clojure有一些区别。
“project.clj”中的依赖项可以被 ClojureScript 应用/可见/可用,例如,看看“ jayq ”。您可以将其包含在“project.clj”中:
(defproject xyz/xyz "0.1.0-SNAPSHOT"
:dependencies [[clj-time "0.4.3"]
[jayq "2.2.0"]
....
然后在 ClojureScript 文件中使用它:
(ns xyz.some.cljs
(:require ...
...
[clojure.browser.repl :as repl]
[jayq.core :as jq])
虽然“jayq”不是“后端”意义上的“Clojure”库,因为它只是包装了 JavaScript,但它是在 ClojureScript 端使用“project.clj”依赖项的一个示例。
此外,大部分核心库和几个非核心库已经移植到 ClojureScript 端:
- clojure.set
- clojure.string
- clojure.walk
- clojure.zip
- clojure.core.reducers
- fold 目前是 reduce 的别名
- 核心匹配
- 核心逻辑(在作品中)
其他 Clojure 库必须符合 ClojureScript 子集才能在 ClojureScript 中工作。
克隆ClojureScript 存储库并了解它所支持的内容是值得的(如果您喜欢冒险,还可以添加自己的功能 :)
ClojureScript 依赖项通常是基于“前端”的(包括从后端移植的依赖项)。换句话说,最终目标是由 V8 编译并作为 JavaScript 运行,因此可以使用 ClojureScript 编译器(上面的 repo)编译的任何内容。