[英]Reloadable Clojure REPL
如何為Clojure創建一個可重新加載代碼的REPL?
我可以創建一個新項目,並啟動並運行REPL:
lein new app stack
cd stack
lein repl
(-main)
做到這一點應該讓你“你好,世界!”。
我想留在REPL中,將代碼更改為println
“你好伙伴!”,然后再次(-main)
。 自動重新加載或(甚至更好)簡單的手動重新加載(例如使用像(r)
這樣的命令)將使環境完整。
似乎lein我已經進入正確的命名空間(任何命名空間,但是你必須使用的用戶命名空間(in-ns 'some-ns)
是正確的命名空間!)。 唯一沒有答案的部分是代碼重新加載 - 手動或自動。
碰巧我以前問過如何用boot啟動它 。
對於手動重新加載,您可以使用與啟動應答中發布的相同技巧,即具有為您重新加載的功能:
(defn r [] (require 'stack.core :reload))
一旦上述函數成為stack.core
命名空間的一部分,您就可以從REPL中調用它。 非常簡單 - 命名空間stack.core
在其中有一個重載自身的函數。
從編輯器進行代碼更改,使用(r)
重新加載,然后再次運行...
還有用於自動重新加載的lein-autoreload插件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.