【问题标题】:Clojure Ring: How to determine if development server is running?Clojure Ring:如何确定开发服务器是否正在运行?
【发布时间】:2015-05-20 12:12:54
【问题描述】:

我有一个包含 Clojure 和 ClojureScript 代码的项目。当我通过lein ring server 运行我的服务器时,我想包括未优化的 ClojureScript,否则优化 ClojureScript。这样做的惯用方法是什么?

我正在使用:

[[bidi "1.19.0"]
 [hiccup "1.0.5"]
 [org.clojure/clojure "1.7.0-beta3"]
 [org.clojure/clojurescript "0.0-3269"]]

[[lein-cljsbuild "1.0.4"]
 [lein-ring "0.9.4"]]

我的处理程序只是一个简单的处理程序:

(def app (-> ["/" {:get {"" index-view}}]
             (compile-route)
             (make-handler)))

这是我的服务器指令:

:ring {:handler webapp.core/app}

在我看来,我正在寻找一种能够做到这一点的方法:

(dev-server? request) ;; => true if it's a development server, otherwise false.

【问题讨论】:

    标签: clojure leiningen ring


    【解决方案1】:

    执行此操作的惯用方法是使用leiningen profiles,使用:dev 配置文件。然后,您可以确保在开发配置文件中您的 ClojureScript 构建正在发生而没有优化,参见。 leiningen cljsbuild compilation profiles

    如果您希望能够识别正在运行的开发服务器,您可以使用environ——在您的:dev 配置文件中包含:env {:dev true},然后在您的代码中您可以调用(env :dev)。您可能想看看reagent-template 以获得灵感。

    【讨论】:

    • 我的问题不在于构建 ClojureScript。
    • 我更新了答案以解决您的dev-server? 问题。看一下试剂模板,它设置了一个有点复杂的 cljsbuild,您的问题(选择优化/未优化)得到了解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多