Я искал ответ на этот вопрос в Интернете, Google и т. Д., Но я не могу найти ничего, что могло бы помочь мне сделать то, что я пытаюсь:
Вот сценарий -
У меня есть код clojure, запускающий экземпляр сервера Jetty и обслуживающий контент, включая html, сгенерированный hiccup.
Я добавил clojurescript в микс для обслуживания внешнего интерфейса с помощью реагента.
Например. страница, обслуживаемая Jetty, имеет и div id = "app", и скомпилированный реагентом app.js переписывает dom для этого.
Пока все работает .. Я настроил lein для запуска кода clojure и встраивания кода clojurescript в app.js и поместил его в путь к активу в моей конфигурации lein.
Сейчас я пытаюсь выполнить горячую перезагрузку этого кода app.js с помощью figwheel-main..но я ничего не получаю. Используя figwheel-main, он открывает отдельный URL-адрес браузера, который может выполнять горячую перезагрузку ... но это не связано с бэкэндом clojure, который обслуживает контент. то есть figwheel-main, показывающий код clojurescript на локальном хосте: 9500, тогда как Jetty работает на порту 3000.
Я хочу видеть возможность горячей загрузки app.js, обслуживаемого экземпляром Jetty, когда я изменяю код clojurescript.
Я не могу понять, как это сделать.
Я попробовал конфиги из figwheel-main tutorial -i.e
deps.edn и т. д., но не могу понять, как интегрировать его с существующим
код закрытия.
(defproject myproject "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
:url "https://www.eclipse.org/legal/epl-2.0/"}
:dependencies [[org.clojure/clojure "1.10.0"]
[metosin/reitit "0.3.7"]
[ring "1.7.1"]
[migratus "1.2.3"]
[com.h2database/h2 "1.4.199"]
[org.postgresql/postgresql "42.2.5"]
[org.clojure/java.jdbc "0.7.9"]
[cumulus "0.1.2"]
[com.layerware/hugsql "0.4.9"]
[selmer "1.12.12"]
[ring-webjars "0.2.0"]
[ring/ring-anti-forgery "1.3.0"]
[hiccup "1.0.5"]
[org.clojure/clojurescript "1.10.520" :scope "provided"]
[reagent "0.8.1"]
[cljs-ajax "0.8.0"]
[org.webjars.npm/bulma "0.7.4"]
[org.webjars/font-awesome "5.3.1"]]
:main ^:skip-aot myproject.core
:source-paths ["src/clj"]
:resource-paths ["resources" "target/public"]
:target-path "target/%s"
:clean-targets ^{:protect false}
[:target-path
[:cljsbuild :builds :app :compiler :output-dir]
[:cljsbuild :builds :app :compiler :output-to]]
:cljsbuild {:builds
[{:source-paths ["src/cljs"]
:compiler {:main "myproject.core"
:asset-path "js/out"
:optimizations :none
:source-map true
:pretty-print true
:output-to "target/cljsbuild/public/js/app.js"
:output-dir "target/cljsbuild/public/js/out"}}]}
:plugins [[lein-cljsbuild "1.1.7"]]
:profiles {:uberjar {:aot :all}
:dev {:repl-options
{:init-ns myproject.core}}
Я ожидаю, что figwheel-main будет работать с контентом, уже обслуживаемым причалом