【问题标题】:Get the Clojurescript repl/connect to not compile when in production?在生产中获取 Clojurescript repl/connect 以不编译?
【发布时间】:2012-10-14 01:30:06
【问题描述】:

在我的 clojurescript 代码中,我有以下内容:

(defn onload [] (repl/connect "http://localhost:9000/repl"))

(set! (.-onload js/window) onload)

Clojurescript repl 在开发中非常有用,但在生产过程中我很犹豫是否将其留在代码中。在开发期间(简单编译)存在上述代码但在生产期间不存在(高级编译)的最干净的方法是什么?

【问题讨论】:

    标签: clojure clojurescript


    【解决方案1】:

    modern-cljs 教程实际上准确地描述了如何解决这个here

    希望有帮助!

    【讨论】:

      【解决方案2】:

      不幸的是,目前在 ClojureScript 中没有任何定义明确的方法来进行条件编译。

      您可以通过多种方式添加配置变量来控制是否启动 REPL,但一种快速简便的方法是获取当前页面的主机名,并且仅在为“localhost”时调用 repl/connnect或您用于开发工作的任何其他域。

      【讨论】:

      • 大声思考,这也意味着 repl/connect 的所有代码最终也将被编译到我的生产代码中。老实说,我不知道编译段有多大,只是说明一点。
      【解决方案3】:

      我认为 lein2 配置文件和 cljsbuild src-paths munging 的组合可以解决问题。例如,创建一个简单地加载您的 repl 的命名空间,并使用配置文件运行排除它以进行最终编译(可能需要在另一个 src-path 目录中创建一个虚拟命名空间)。

      【讨论】:

        猜你喜欢
        • 2012-05-15
        • 1970-01-01
        • 2019-11-07
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多