我想使用 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/