Как я могу развернуть приложение Reagent, не нуждаясь в Figwheel? - PullRequest
0 голосов
/ 05 апреля 2019

Я написал веб-приложение на Reagent, и я разрабатываю и запускаю его локально, используя Figwheel, и это здорово. Теперь я хочу развернуть его, поэтому я запустил «Lein Ring Uberwar». Там написано «Компиляция ClojureScript ...» (3 раза!), Что звучит многообещающе. Но затем, когда я развертываю файл войны и захожу на страницу, у меня появляется вспышка:

ClojureScript has not been compiled!
please run lein figwheel in order to start the compiler

до подачи заявки.

Должен ли Figwheel участвовать в производственном развертывании? Могу ли я построить Uberwar, в котором нет этой FOUC-подобной вспышки?

Я нашел Как развернуть одностраничное приложение. написано в ClojureScript / Figwheel для статического сервера? , но кажется, что оно начинается с нуля (не зависит от реагента), и многие ссылки не работают.

Я не знаком с тем, как работает figwheel / uberwar, поэтому я даже не знаю, что попробовать.

Это происходит даже с простым Реагентным проектом 0.8.1, AFAICT.

Я вижу текст предупреждения Figwheel очень кратко, когда я впервые захожу на страницу. Я бы вообще ничего не видел, пока страница не загрузится. (Или, может быть, позвольте мне вставить пользовательский спиннер или что-то в этом роде, но по одной вещи за раз.) Я также хотел бы не упаковывать и не отправлять ненужный код Figwheel каждому клиенту, потому что он не большой, но никогда не должен быть необходим есть.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Я думаю, что ваш процесс упаковки потребует двух шагов:

  • Первое: скомпилируйте код ClojureScript с рабочим профилем.Возможно, у вас есть что-то подобное с lein cljsbuild prod once или похожей целью.Идея состоит в том, что вы хотите, чтобы производственный профиль создавал этот единственный оптимизированный файл JavaScript, который Tomcat будет использовать в качестве статического ресурса.

  • Второе: создайте файл WAR для Tomcat с помощьюlein ring uberwar.

В зависимости от того, как вы обслуживаете статические файлы из своего веб-приложения, путь к статическим ресурсам может измениться, но если вы не добавите какую-либо другую конфигурацию, вы будете либообслуживание статических ресурсов, как объяснено в этом ответе: https://stackoverflow.com/a/7820392/483566

0 голосов
/ 05 апреля 2019

Я думаю, что вы ищете lein uberjar:

~/expr/cljs-enflame > lein uberjar
Created /home/alan/expr/cljs-enflame/target/cljs-enflame-0.1.0-SNAPSHOT.jar
Created /home/alan/expr/cljs-enflame/target/cljs-enflame-0.1.0-SNAPSHOT-standalone.jar

Затем вы можете развернуть автономную версию и запустить свою программу с помощью команды:

> java -jar target/cljs-enflame-0.1.0-SNAPSHOT-standalone.jar

где вы указываете основную точку входа в программу в project.clj как:

:main  demo.hello
...