There is no such namespace: clojure.spec.alpha in clojurescript project setup

I am trying to find out clojure.spec . When setting up the clojure project along the boot build tool, I get the following error, requiring 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 

My boot configuration is as follows:

 (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"}))) 

My main app.cljs file is as follows:

 (ns flowparser.app (:require [clojure.spec.alpha :as spec])) (defn init [] "Hello World") 

Since I'm just starting out with clojure , any suggestions on these types of problems will be very helpful.

thanks

+5
source share
2 answers

You gather speculation at a particularly tricky moment. Clojure 1.9.0-alpha16 just changed namespaces from clojure.spec to clojure.spec.alpha .

ClojureScript has made equivalent changes to master, but a new version has not yet been released. Therefore, for ClojureScript <= 1.9.521, you need to use clojure.spec instead as the required namespace.

+9
source

You might need a newer version of spec.alpha, which might solve your problem.

Try adding this to your dependencies.

  [org.clojure/spec.alpha "0.1.108"] 

An explanation from the maintainer is here https://groups.google.com/d/msg/clojure/10dbF7w2IQo/s5kUM4tCAAAJ

0
source

All Articles