按照建议的步骤后
https://github.com/samestep/boot-refresh
从引导项目中使用 cider-jack-in 时,预期的热重载行为有效。
但是,在以下情况下它不起作用。考虑这个引导任务:
(deftask dev2 []
(comp
(serve
:handler 'app.core/handler
:reload true
:port 3000
:httpkit true
:nrepl {:port 4000})
(watch) (refresh) ;; doesn't work with or without this line
))
相关部分是:nrepl
关键字。
触发此任务后,可以在 4000 端口连接到 nrepl 服务器,其优点是可以在开发过程中访问应用程序的实际状态。(有关详细信息,请参阅此帖子)
这可以通过cider-connect
. 然而,在那里热重载已经消失了。该:reload true
选项可能会在这里混淆,这只会在 http 请求完成时触发源重新加载。但我正在寻找更通用的引导刷新方法。
注意:这里的目的是在服务器端进行实时重新加载行为,这类似于客户端已知的概念(figwheel 或 boot-reload)。