我正在开发我的第一个全栈Clojure应用程序。我设法使以下内容在Linux Mint中正常工作:
我不知道该怎么做,是建立了一个开发环境,该环境允许我同时拥有服务器REPL和SPA REPL,以便我可以集成用于Websocket支持的sende并监视重新安装。 SPA REPL中的框架应用程序数据库状态。我想,理想情况下,我想让Figwheel + gargen [auto]与SPA一起运行,并通过sende websocket与服务器进行通信。
答案 0 :(得分:0)
我的回答不是您真正想要的,但是您可能还是会感兴趣的,我相信您,请耐心等待。
您尝试使用lightmod编辑器吗?它旨在成为具有最少设置的全栈编辑器。实际上,当您启动它时,您可以为您的项目预先选择模板,并自动为后端获取一个REPL,为SPA提供一个REPL,以及自动重新加载等功能。它没有Emacs的所有功能,但我发现它确实很好快速设置。
答案 1 :(得分:0)
事实证明,在ClojureScript应用程序中使用的名为send-channel-socket!的sende函数被调用以启动与应用程序服务器上运行的sente-websocket-server的连接,它具有第三个参数,即选项映射,名为:host的密钥。默认情况下,sente将:host值设置为从其加载ClojureScript应用程序的服务器。
如果运行“ lein figwheel”并通过figwheel服务器加载ClojureScript应用,则默认情况下,sende会尝试连接到figwheel服务器,这当然不是在运行sente Websocket服务器。
对于开发模式,必须: 1.在终端中启动应用服务器(例如“ lein repl”) 2.使用:host值'localhost:'编译ClojureScript应用程序 3.在另一个终端中通过Figwheel运行ClojureScript应用程序 4.从浏览器(例如'localhost:3449')连接到figwheel服务器
当通过Figwheel服务器将ClojureScript应用程序加载到浏览器中时,它将执行sende连接调用,该调用现在与应用程序服务器中运行的sente Websocket服务器建立连接。
这太神奇了!现在,人们可以使用带有浏览器的REPL的figwheel,并同时使用带有REPL的应用服务器。