我正在努力学习clojure.spec
。在启动构建工具中设置clojure项目时,我在获取clojure.spec.alpha时遇到以下错误。
Compiling ClojureScript...
• js/app.js
No such namespace: clojure.spec.alpha, could not locate clojure/spec/alpha.cljs, clojure/spec/alpha.cljc, or Closure namespace "clojure.spec.alpha" in f
ile src/cljs/flowparser/app.cljs
Elapsed time: 0.141 sec
我的启动配置如下:
(def +version+ "0.0.1-SNAPSHOT")
(def +description+ "Parses graph DSL for VADE")
(set-env!
:source-paths #{"src/cljs"}
:resource-paths #{"resources"}
:dependencies '[
[org.clojure/clojure "1.9.0-alpha16"]
[org.clojure/clojurescript "1.9.521"]
[org.clojure/core.async "0.3.442"]
[adzerk/boot-cljs "2.0.0" :scope "test"]
[adzerk/boot-cljs-repl "0.3.3" :scope "test"]
[adzerk/boot-reload "0.5.1" :scope "test"]
[pandeiro/boot-http "0.8.0" :scope "test"]
[com.cemerick/piggieback "0.2.1" :scope "test"]
[org.clojure/tools.nrepl "0.2.13" :scope "test"]
[weasel "0.7.0" :scope "test"]
[crisptrutski/boot-cljs-test "0.3.0" :scope "test"]
[binaryage/dirac "1.2.7" :scope "test"]
[powerlaces/boot-cljs-devtools "0.2.0" :scope "test"]
[proto-repl "0.3.1" :scope "test"]
[proto-repl-charts "0.3.2" :scope "test"]
[boot-codox "0.10.3" :scope "test"]
[adzerk/bootlaces "0.1.13"]])
(require
'[adzerk.boot-cljs :refer [cljs]]
'[adzerk.boot-cljs-repl :refer [cljs-repl start-repl]]
'[adzerk.boot-reload :refer [reload]]
'[pandeiro.boot-http :refer [serve]]
'[crisptrutski.boot-cljs-test :refer [test-cljs]]
'[powerlaces.boot-cljs-devtools :refer [cljs-devtools dirac]]
'[codox.boot :refer [codox]]
'[adzerk.bootlaces :refer :all])
(bootlaces! +version+ :dont-modify-paths? true)
(task-options!
pom {:project 'vadelabs/flowparser
:version +version+
:description +description+
:url "https://github.com/pntripathi9417/flowparser"
:scm {:url "https://github.com/pntripathi9417/flowparser"}
:license {"Eclipse Public License"
"http://www.eclipse.org/legal/epl-v10.html"}})
(deftask build []
(comp (speak)
(cljs)))
(deftask run []
(comp (serve)
(watch)
(cljs-repl)
(dirac)
(reload)
(build)
(target)))
(deftask production []
(task-options! cljs {:optimizations :advanced})
identity)
(deftask development []
(task-options! cljs {:optimizations :none}
reload {:on-jsload 'flowparser.app/init})
identity)
(deftask dev
"Simple alias to run application in development mode"
[]
(comp (development)
(run)))
(deftask docs []
"Generates documentation for the library"
(comp (codox
:name "vadelabs/flowparser"
:description +description+
:version +version+
:language :clojurescript
:output-path ".")
(target :dir #{"docs"})))
我的主要app.cljs文件如下:
(ns flowparser.app
(:require [clojure.spec.alpha :as spec]))
(defn init []
"Hello World")
正如我刚刚开始clojure
时,对这类问题的任何建议都会有很大帮助。
由于
答案 0 :(得分:10)
你在特别棘手的时刻拿起规格。 Clojure 1.9.0-alpha16刚刚将名称空间从clojure.spec
更改为clojure.spec.alpha
。
ClojureScript在master上进行了相同的更改,但尚未发布新版本。因此,对于ClojureScript< = 1.9.521,您需要使用clojure.spec
作为您需要的命名空间。
答案 1 :(得分:1)
可能需要更新版本的spec.alpha才能解决您的问题。
尝试将此添加到您的依赖项
[org.clojure/spec.alpha "0.1.108"]
维护者的解释是https://groups.google.com/d/msg/clojure/10dbF7w2IQo/s5kUM4tCAAAJ