clojure - 如何将 figwheel 与作为组件的环处理程序一起使用?

标签 clojure ring

我想使用 figwheel重新加载我正在玩的全 Clojure 项目的前端。

后端服务于一个 REST api,并被组织成一堆 components我在我的 main 中创建了一个系统函数(我使用 duct 创建处理程序组件)。我想使用闭包将状态传递给我的处理程序,但配置 figwheel 以使用我的处理程序的唯一方法似乎是设置 ring-handler键入 project.clj , 这要求我传递一个在 lein 的命名空间中定义的处理程序启动时间。

那么 - 有没有办法在我启动组件时配置 figwheel?我在 Closure 还是个新手,所以我很可能遗漏了一些显而易见的东西。

Passing state as parameter to a ring handler?是一个类似的问题,但那里的答案涉及将处理程序绑定(bind)到命名空间的顶层 var,我试图避免这种情况。

最佳答案

Figwheel 不需要成为处理程序。您可以通过剖析 this 来包装一个在服务器启动并运行时自动构建的组件。将代码写入一个组件,一个对您的服务器组件的依赖项,以便它首先启动。请注意,这不受官方支持。运行lein figwheel从 shell 引导一个单独的 JVM 是常规用法。

如果您使用的是 Stuarts 组件库,我建议您从服务器组件中包装环处理程序,而不是通过 project.clj。使用this project or adapt the code snippet对于码头组件。

请注意,figwheel 是开发工具,因此在生产中您很可能希望提供使用 e 构建的已编译 js 文件。 G。 lein-cljsbuild .

关于clojure - 如何将 figwheel 与作为组件的环处理程序一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418172/

相关文章:

http - 了解 Ring 和 Appengine-magic (Clojure) 上的处理程序

http - Clojure 黑色 : how to set up basic authentication for only a part of the application

clojure - 如何在最新版本的 ring/compojure 中使用 ring anti-forgery/CSRF token ?

algorithm - 如何在 Clojure 中将序列划分为递增的子序列?

loops - 循环遍历宏的参数

scala - Clojure clojure.core.reducers/fold 和 Scala Fold 有什么区别?

clojure - 我可以让 lein ring server-headless 在特定的 servlet 上下文上运行吗?

jar - 如何运行 compojure 休息服务器?

model-view-controller - Clojure 模型- View - Controller (MVC) 设计

clojure - 如何使用 ring.mock.request 模拟 PUT 请求