내가 찾고있는 것은 tools.namespace과 wrap-reload의 조합입니다.
(ns your-project.core
(:require [clojure.tools.namespace.repl :as tn]
[org.httpkit.server :as http]
[ring.middleware.reload :refer [wrap-reload]]
[compojure.core :refer [defroutes GET]]
(defroutes create-app []
(GET "/" [] (fn [req] "hello world")
(defonce server (atom nil))
(defn start []
(let [app (create-app)]
(reset! server (http/run-server (wrap-reload app) {:port 3000}))
(println (str "Listening on port " 3000))))
(defn stop []
(when @server
(@server :timeout 100)
(reset! server nil)))
(defn restart []
(stop)
(tn/refresh :after 'your-project.core/start))
그래,이 정확히 내가 무엇을 찾고 다음과 같습니다
는 여기에 내가 무엇을 최대 온입니다. 감사합니다 – user1622727
dev 모드에서만 다시로드해야합니까? – danfromisrael
네가 맞다. 최근 프로젝트에서 이걸 좀 더 확장 했어. 완벽하지는 않지만, prod와 dev를 구별하려고한다. https://github.com/swlkr/coast/blob/master/src/ coast/server.clj – swlkr