Ошибка Clojure Lein Figwheel - проект Luminus с перекомпоновкой

Я пытаюсь создать веб-приложение с помощью Luminus. Я создал проект с lein new luminus my-app +reagent +sqlite, не изменил ни одного файла, просто попытался запустить figwheel для компиляции javascript с lein figwheel, но получил следующую ошибку:

Figwheel: Cutting some fruit, just a sec ...
Retrieving clj-time/clj-time/0.14.3/clj-time-0.14.3.pom from clojars
Retrieving joda-time/joda-time/2.9.9/joda-time-2.9.9.pom from central
Retrieving conman/conman/0.7.8/conman-0.7.8.pom from clojars
Retrieving org/clojure/java.jdbc/0.7.5/java.jdbc-0.7.5.pom from central
Retrieving org/clojure/tools.cli/0.3.6/tools.cli-0.3.6.pom from central
Retrieving joda-time/joda-time/2.9.9/joda-time-2.9.9.jar from central
Retrieving org/clojure/java.jdbc/0.7.5/java.jdbc-0.7.5.jar from central
Retrieving org/clojure/tools.cli/0.3.6/tools.cli-0.3.6.jar from central
Retrieving clj-time/clj-time/0.14.3/clj-time-0.14.3.jar from clojars
Retrieving conman/conman/0.7.8/conman-0.7.8.jar from clojars
Exception in thread "main" java.lang.ExceptionInInitializerError
    at clojure.main.<clinit>(main.java:20)
Caused by: java.lang.ExceptionInInitializerError, compiling: (figwheel_sidecar/utils.clj:1:1)
    at clojure.lang.Compiler.load(Compiler.java:7526)
    at clojure.lang.RT.loadResourceScript(RT.java:379)

(... Many more lines)

Мой project.clj :dependencies выглядит так:

 :dependencies [[clj-time "0.14.3"]
             [cljs-ajax "0.7.3"]
             [compojure "1.6.0"]
             [conman "0.7.8"]
             [cprop "0.1.11"]
             [funcool/struct "1.2.0"]
             [luminus-immutant "0.2.4"]
             [luminus-migrations "0.5.0"]
             [luminus-nrepl "0.1.4"]
             [luminus/ring-ttl-session "0.3.2"]
             [markdown-clj "1.0.2"]
             [metosin/muuntaja "0.5.0"]
             [metosin/ring-http-response "0.9.0"]
             [mount "0.1.12"]
             [org.clojure/clojure "1.9.0"]
             [org.clojure/clojurescript "1.10.238" :scope "provided"]
             [org.clojure/tools.cli "0.3.6"]
             [org.clojure/tools.logging "0.4.0"]
             [org.webjars.bower/tether "1.4.3"]
             [org.webjars/bootstrap "4.0.0-2"]
             [org.webjars/font-awesome "5.0.9"]
             [org.xerial/sqlite-jdbc "3.21.0.1"]
             [re-frame "0.10.5"]
             [reagent "0.7.0"]
             [ring-webjars "0.2.0"]
             [ring/ring-core "1.6.3"]
             [ring/ring-defaults "0.3.1"]
             [secretary "1.2.3"]
             [selmer "1.11.7"]]

Как я могу обойти эту ошибку? Возможно, Luminus устарел? И если это так, как мне начать создавать веб-приложения с Clojure?


person Vasco Ferreira    schedule 12.04.2018    source источник
comment
кажется, это ошибка новой версии шаблона, вы можете изменить строку в env / dev / clj / user.clj [<<project-ns>>.test.db.core] на [<<project-ns>>.db.core]. Это должно решить проблему.   -  person ka yu Lai    schedule 13.04.2018
comment
@AlbertLai К сожалению, это не работает. Выдает следующую ошибку: Exception in thread "main" java.lang.ExceptionInInitializerError at clojure.main.<clinit>(main.java:20) Caused by: java.io.FileNotFoundException: Could not locate potemkin/namespaces__init.class or potemkin/namespaces.clj on classpath., compiling:(ring/util/http_response.clj:1:1)   -  person Vasco Ferreira    schedule 13.04.2018


Ответы (2)


Я обновил шаблон, чтобы указать правильное пространство имен в user. Если вы по-прежнему сталкиваетесь с проблемами, вам следует проверить версию JDK (рекомендуется 8+) и наличие в файле ~/.lein/profiles.clj подключаемых модулей, которые могут вызвать конфликты.

person Yogthos    schedule 13.04.2018

Я только что пытался настроить проект ClojureScript для работы как с Figwheel, так и со средой тестирования Doo. Код живет в этом репо:

[email protected]:cloojure/cljs-base-project.git

Он пока не включает никаких серверных вещей, но я добавлю больше.

Если вы начинаете с материала CLJS (как следует из части вашего вопроса с фиговым колесом), вы можете начать здесь, а затем добавить биты для Ring, Luminous и т. Д.

Кроме того, не забудьте проверить lein-ancient, чтобы проверить устаревшие версии своих зависимостей.

person Alan Thompson    schedule 12.04.2018