我正在使用 Austin设置浏览器连接的 REPL,并按照其 sample project 的示例,它使用 Enlive 将 REPL 脚本添加到页面。
现在我想部署我的应用程序,但我不希望 Austin 或我的 REPL 出现在生产页面上。仅在开发中使用 REPL 的预期方式是什么?
有没有办法将 Enlive 用作我可以在开发中而不是在生产中使用的中间件?
最佳答案
生产环境与 :dev
几乎总是有一些独特的区别。可以用作条件:if in :dev
,注入(inject)(browser-connected-repl-js)
的结果;如果没有,不要。
如果您的部署环境没有这样的属性,我建议添加一个,因为这种“仅在环境 X 中”用例在很多事情中都很常见。
另一方面,如果您希望避免在面向生产的构建中完全包含 Austin 及其依赖项,而无需更改任何使用 browser-connected-repl-js
的代码。 ,一种解决方案可能是简单地虚拟化相关的 Austin 命名空间,例如:
(ns cemerick.austin.repls)
(defn browser-connected-repl-js [& _] "")
把它放在
cemerick/austin/repls.clj
在您的project.clj
中包含的目录中的非:dev
简介:source-paths
.现在,您的代码将在没有 Austin 及其依赖项的情况下部署到生产环境,并且您的代码将透明地调用上述虚拟函数(不向您的页面注入(inject)任何内容)。
关于clojure - 在页面上包含浏览器 REPL 的正确方法是什么,但仅在开发中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859447/