ClojureScript выдает синтаксическую ошибку при простом определении пространства имен

#clojure #clojurescript

#clojure #clojurescript

Вопрос:

Я работаю над изучением Clojure и Clojurescript; в настоящее время просматриваю книгу Living Clojure.

У меня возникли проблемы с компиляцией ClojureScript… Я просто привел пример, как указано в книге:

 (ns cheshire-cat.core)

(defn ^:export init []
  (js/alert "hi"))
 

Я попробовал предложение книги для запуска компилятора

lein cljsbuild auto

Но я получаю эту ошибку:

 Compiling ClojureScript.
Syntax error macroexpanding clojure.core/ns at (cljsbuild/crossover.clj:1:1).
import - failed: #{:refer-clojure} at: [:ns-clauses :refer-clojure :clause] spec: :clojure.core.specs.alpha/ns-refer-clojure
import - failed: #{:require} at: [:ns-clauses :require :clause] spec: :clojure.core.specs.alpha/ns-require
import - failed: #{:import} at: [:ns-clauses :import :clause] spec: :clojure.core.specs.alpha/ns-import
import - failed: #{:use} at: [:ns-clauses :use :clause] spec: :clojure.core.specs.alpha/ns-use
import - failed: #{:refer} at: [:ns-clauses :refer :clause] spec: :clojure.core.specs.alpha/ns-refer
import - failed: #{:load} at: [:ns-clauses :load :clause] spec: :clojure.core.specs.alpha/ns-load
import - failed: #{:gen-class} at: [:ns-clauses :gen-class :clause] spec: :clojure.core.specs.alpha/ns-gen-class

Full report at:
/tmp/clojure-3119149998558661227.edn
 

Помогите, пожалуйста? Я работаю с Clojure уже несколько недель, но только начинаю ClojureScript.

Комментарии:

1. В ошибке указано, что она crossover.clj включена, но файл, который вы показываете, должен быть src/cheshire_cat/core.cljs

Ответ №1:

Ваша проблема была исправлена здесь

https://github.com/emezeske/lein-cljsbuild/commit/3d4d8d8f89f140e6b28aa8ce995c44743e4c6cf3

Вы должны увеличить свой cljsbuild до 1.1.8 или понизить свой clojure до 1.8.0