#clojure #clojurescript #leiningen #reagent #figwheel
#clojure #clojurescript #leiningen #реагент #figwheel
Вопрос:
Я хочу начать проект с reagent и figwheel, и я уже делал это раньше с помощью этой команды, и это сработало, на самом деле они все еще работают. Но с новым изменились некоторые конфигурации и версии зависимостей, и он больше не начинается с ‘lein fighwheel’. Вот мой project.clj
(defproject ajedrez1 "0.1.0-SNAPSHOT"
:description "FIXME: write this!"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:min-lein-version "2.9.1"
:dependencies [[org.clojure/clojure "1.10.0"]
[org.clojure/clojurescript "1.10.773"]
[org.clojure/core.async "0.4.500"]
[reagent "0.10.0" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]]
:plugins [[lein-figwheel "0.5.20"]
[lein-cljsbuild "1.1.7" :exclusions [[org.clojure/clojure]]]]
:source-paths ["src"]
:cljsbuild {:builds
[{:id "dev"
:source-paths ["src"]
:figwheel {:on-jsload "ajedrez1.core/on-js-reload"
:open-urls ["http://localhost:3449/index.html"]}
:compiler {:main ajedrez1.core
:target :bundle
:asset-path "js/compiled/out"
:output-to "resources/public/js/compiled/out/index.js"
:output-dir "resources/public/js/compiled/out"
:bundle-cmd {:none ["npx.cmd" "webpack" "--mode=development"]
:default ["npx.cmd" "webpack"]}
:source-map-timestamp true
:preloads [devtools.preload]}}
{:id "min"
:source-paths ["src"]
:compiler {:output-to "resources/public/js/compiled/ajedrez1.js"
:main ajedrez1.core
:optimizations :advanced
:pretty-print false}}]}
:figwheel {:css-dirs ["resources/public/css"] ;; watch and update CSS}
:profiles {:dev {:dependencies [[binaryage/devtools "1.0.0"]
[figwheel-sidecar "0.5.20"]]
:source-paths ["src" "dev"]
:clean-targets ^{:protect false} ["resources/public/js/compiled"
:target-path]}})
Он выдает:
Figwheel: Cutting some fruit, just a sec ...
Figwheel: Validating the configuration found in project.clj
Figwheel: Configuration Valid ;)
Figwheel: Starting server at http://0.0.0.0:3449
Figwheel: Watching build - dev
Figwheel: Cleaning build - dev
Compiling build :dev to "resources/public/js/compiled/out/index.js" from ["src"]...
Failed to compile build :dev from ["src"] in 16.531 seconds.
---- Exception ----
clojure.lang.ExceptionInfo : :build-cmd :none failed
java.io.IOException : Cannot run program "npx.cmd": CreateProcess error=2, El sistema no puede encontrar el archivo especificado
java.io.IOException : CreateProcess error=2, El sistema no puede encontrar el archivo especificado
Я попытался вытащить:
:exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]
:target :bundle
:bundle-cmd {:none ["npx.cmd" "webpack" "--mode=development"]
:default ["npx.cmd" "webpack"]}
потому что в предыдущих проектах его не было, и он был успешно скомпилирован, но браузер показывает только «Проверка шаблона Figwheel на консоли разработчика». с «Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден)» на консоли.
Я попробовал с помощью ‘lein clen’ после добавления:
:clean-targets ^{:protect false} [:target-path
[:cljsbuild :builds :app :compiler
:output-dir]
[:cljsbuild :builds :app :compiler
:output-to]]
но это то же самое.
На всякий случай, у меня было переполнение стека с repl, когда я оцениваю одно и то же выражение более одного раза, время оценки увеличивается с каждым повторением. Я должен периодически перезапускать его.
Комментарии:
1. Исходная ошибка указывает вам установить Node / NPM, поскольку он использует webpack для объединения ваших ресурсов. Что касается второго, какой файл он пытается загрузить, когда вы получаете 404? Скорее всего, вам нужно настроить Figwheel для вывода его JS-файла туда, где Webpack выводил свой пакет, прежде чем вы его удалили.
2. Проблема заключалась в том, что у меня не был установлен npm. Затем это сработало. Большое вам спасибо за ваш ответ и ваше время. Приветствую.