如何在生产环境下避免Clojurescript的REPL/连接编译?

9
在我的ClojureScript代码中,我有以下内容:
(defn onload [] (repl/connect "http://localhost:9000/repl"))

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

Clojurescript repl在开发中非常有用,但我不确定是否应该在生产环境中保留它的代码。有什么最干净的方法可以让上述代码在开发(简单编译)期间存在,但在生产(高级编译)期间不存在?
3个回答

7

modern-cljs教程实际上描述了如何在这里解决此问题。

希望能有所帮助!


3

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

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


直白地说,这也意味着 repl/connect 的所有代码都将编译到我的生产代码中。老实说,我不知道编译后的代码有多大,只是想表达一下观点。 - Stephen Cagle

1
我认为使用lein2配置文件和cljsbuild源路径修改相结合可以解决问题。例如,创建一个简单加载repl的命名空间,并在最终编译时使用一个配置文件来排除它(可能需要在另一个src-path目录中创建一个虚拟命名空间)。

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