繁体   English   中英

如何在不需要Figwheel的情况下部署试剂应用程序?

[英]How can I deploy a Reagent application, without needing Figwheel?

我在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闪光灯的超级战争吗?

我发现如何部署单页应用程序。 用ClojureScript / Figwheel写成静态服务器? 但它似乎从头开始(不是Reagent特定的),很多链接已经死了。

我不熟悉figwheel / uberwar如何工作,所以我甚至不知道该尝试什么。

即使使用普通的0.8.1试剂项目AFAICT,也会发生这种情况。

当我第一次访问该页面时,我非常简短地看到了一个Figwheel警告文本。 在页面加载之前,我一点都不看。 (或者也许让我放入一个自定义的微调器或其他东西,但一次只有一件事。)我也不想打包并向每个客户端发送不必要的Figwheel代码,因为它不大但是永远不需要它那里。

我想你正在寻找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

我认为您的包装过程需要两个步骤:

  • 第一步:使用生产配置文件编译ClojureScript代码。 你可能有lein cljsbuild prod once或类似的目标。 我们的想法是,您希望生产配置文件生成单个优化的JavaScript文件,该文件将由Tomcat作为静态资源提供。

  • 第二:为Tomcat构建WAR文件, lein ring uberwar

根据您从Web应用程序提供静态文件的方式,静态资源的路径可能会发生变化,但除非您添加任何其他配置,否则您将按照以下答案中的说明提供静态资源: https:// stackoverflow。 COM / A /四十八万三千五百六十六分之七百八十二万零三百九十二

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM