将Ring / Jetty与Clojure结合使用,当我对代码进行任何更改时,我必须重新加载整个JVM。
有没有让Jetty与我的代码中的更改保持异步,所以我可以简单地刷新浏览器窗口并立即进行更改?
具体来说,我正在使用Hiccup进行HTML解析,而这主要是我正在制作的布局的变化。
如果布局更改自动编译并在刷新时在浏览器中可用,那将大大节省时间。
有没有人有任何相关信息?有没有解决方案?
答案 0 :(得分:8)
您可能需要专门查看lein-ring :auto-reload?
和:auto-refresh?
选项。
答案 1 :(得分:7)
作为环中自动重新加载功能的替代方案,如果你使用的是启用了repl的开发系统,比如emacs + nrepl或者逆时针(如果你没有,你应该尝试一下,看看它有什么区别) ),您可以直接从编辑器重新评估特定的定义或文件到正在运行的系统。 IMO它比保存+(自动)重载更优越的工作流程。我使用emacs / nrepl.el,我从来没有使用过自动重新加载。
答案 2 :(得分:1)
为什么不使用lein-ring?
这是一个示例project.clj:
(defproject tutorial1 "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:repl-options {:port 11111}
:plugins [[lein-ring "0.8.8"]]
:ring {:handler tutorial1.core/handler
:auto-reload? true
:auto-refresh? true
}
:dependencies [[org.clojure/clojure "1.5.1"]
[ring/ring-core "1.2.1"]
[ring/ring-jetty-adapter "1.2.1"]
[ring-refresh "0.1.1"]])