簡體   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