ClojureとClojureScriptの違いがいくつかあります。
「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」はJavaScriptをラップするだけなので、「バックエンド」の意味での「Clojure」ライブラリではありませんが、ClojureScript側で「project.clj」依存関係を使用する例です。
さらに、ほとんどのコアライブラリといくつかの非コアライブラリは、すでにClojureScript側に移植されています。
- clojure.set
- clojure.string
- clojure.walk
- clojure.zip
- clojure.core.reducers
- foldは現在reduceのエイリアスです
- core.match
- core.logic(作業中)
他のClojureライブラリは、ClojureScriptで機能するために、ClojureScriptサブセットに準拠する必要があります。
ClojureScriptリポジトリのクローンを作成して、それが何をサポートしているかを理解することは価値があります(さらに、冒険心がある場合は、独自の機能を追加してください:)
ClojureScriptの依存関係は通常、「フロントエンド」ベースです(バックエンドから移植されたものも含まれます)。つまり、最終目標はV8でコンパイルし、JavaScriptとして実行することです。したがって、ClojureScriptコンパイラー(上記のリポジトリ)でコンパイルできるものなら何でも使用できます。