我用Reagent编写了一个web应用程序,并使用Figwheel在本地开发和运行它,这很棒。现在我想部署它,所以我运行了"lein ring uberwar“。它说“编译ClojureScript...”(3次!),这听起来很有希望。但是当我部署war文件并访问页面时,我突然想到:
ClojureScript has not been compiled!
please run lein figwheel in order to start the compiler在应用程序生效之前。
Figwheel是否应该参与生产部署?我能构建一个没有这种类似FOUC的flash的uberwar吗?
我不熟悉figwheel/uberwar是如何工作的,所以我甚至不知道该尝试什么。
即使是一个普通的0.8.1试剂项目,AFAICT也会发生这种情况。
当我第一次访问该页面时,我看到了一个非常简短的飞轮警告文本。我希望在页面加载之前什么也看不到。我也希望不必打包和发送不必要的飞轮代码给每个客户端,因为它不大,但在那里永远不应该需要它。
发布于 2019-04-06 00:09:26
我想你是在找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发布于 2019-04-09 10:25:23
我认为您的打包过程需要两个步骤:
lein cljsbuild prod once或类似的目标上有类似的东西可用。其思想是,您希望生产概要文件生成单个优化的JavaScript文件,Tomcat将以静态resource.lein ring uberwar.为Tomcat构建WAR文件
根据从web应用程序提供静态文件的方式,静态资源的路径可能会发生变化,但除非添加任何其他配置,否则将提供静态资源,如以下答案中所述:https://stackoverflow.com/a/7820392/483566
https://stackoverflow.com/questions/55539383
复制相似问题