如何在作为组件的ring-handler中使用figwheel?

8

我想使用figwheel来重新加载一个全Clojure项目的前端。

后端提供REST API,并且组织为一堆组件,我在main函数中创建了一个系统(我使用duct来创建处理程序组件)。我想使用闭包将状态传递给我的处理程序,但配置figwheel使用我的处理程序的唯一方法似乎是在project.clj中设置ring-handler键,并且这需要我在lein启动时通过命名空间定义处理程序。

那么,在进行组件启动时有没有一种配置figwheel的方法呢?我对Closure还很陌生,很可能我正在忽略一些明显的东西。

将状态作为参数传递给ring handler?是一个类似的问题,但那里的答案涉及将处理程序绑定到命名空间的顶层变量中,而我试图避免这种情况。

2个回答

2

Figwheel不需要成为一个处理程序。你可以将这段代码拆分成一个组件,将其作为服务器组件的依赖项进行包装,以便在服务器运行时自动构建。请注意,这并不是官方支持的方式。从shell中运行lein figwheel以启动单独的JVM是常规用法。

如果您正在使用Stuart的组件库,我建议您通过服务器组件内部的ring处理程序进行包装,而不是通过project.clj文件。使用这个项目或调整代码片段来创建jetty组件。

请注意,figwheel是开发工具,在生产环境中,您最好使用编译后的js文件(例如使用lein-cljsbuild)。


0

James Reeves为figwheel制作了一个组件这里

Duct-Figwheel-Component 一个用于Figwheel开发工具的组件,旨在用于Duct框架中(但可以用于任何基于组件的系统)。

安装

将以下依赖项添加到您的project.clj中:

[duct/figwheel-component "0.3.3"]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接