繁体   English   中英

在Emacs Cider REPL中使用重装包装环

[英]Ring with reload-wrap in Emacs Cider REPL

通过重载包装从Emacs Cider REPL内部启动Ring服务器时,REPL会阻塞。 为了在开发过程中具有此代码重新加载功能并能够同时与Cider REPL一起工作,我该怎么办。

另外,通过按Cc CC从REPL中取消正在运行的服务器“进程”后,我无法在同一端口上重新启动它,出现“地址已在使用”错误。

我知道使用Stuart Sierra的组件系统可以做到这一点。 这是唯一的方法吗,或者也许有一个更简单的解决方案?

当您启动环形服务器(我猜想使用码头)时,您并不是在告诉它不要将当前线程加入正在运行的服务器中。 您需要添加join? 选项设置为false

(run-jetty my-handler {:join? false})

您还应该绑定此表达式的返回值(即服务器实例),以便稍后可以停止它:

(def my-server (run-jetty my-handler {:join? false}))
;; some time later
(.stop my-server)

停止服务器将关闭服务器套接字,并使其可用于将来的服务器实例。

Simplier解决方案,用于在dev / user.clj中的某处存储与组件相同的Web服务器浪费。 并配置cider-refresh-fn变量以启动和停止Web服务器。 实际上,想法与组件方法相同,但是您不必使用它,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM