【问题标题】:How to use figwheel with a ring-handler that's a component?如何将 figwheel 与作为组件的环处理程序一起使用?
【发布时间】:2015-08-05 17:51:25
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: clojure ring


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      James Reeves 为 figwheel here 制作了一个组件

      风管无花果轮组件 Figwheel 开发工具的组件,设计用于 Duct 框架(但可用于任何基于组件的系统)。

      安装

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

      [duct/figwheel-component "0.3.3"]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-25
        • 1970-01-01
        • 2014-07-23
        • 2012-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多