загрузочное обновление внутри cider-connect

После выполнения предложенных шагов на

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.

После запуска этой задачи можно подключиться к серверу nrepl через порт 4000, преимущество которого заключается в доступе к фактическому состоянию приложения во время разработки. (подробнее см. этот пост )

Это можно сделать через cider-connect. Однако там пропала горячая перезагрузка. Параметр :reload true может здесь сбить с толку, он вызывает перезагрузку источника только при выполнении http-запроса. Но я ищу более общий подход к обновлению загрузки.


Примечание. Здесь мы намерены обеспечить перезагрузку в реальном времени на стороне сервера, аналогичную концепциям, известным на стороне клиента (фиговир или загрузка-перезагрузка).


person Anton Harald    schedule 13.08.2016    source источник
comment
Привет, спасибо, что попробовал мою библиотеку! :D Вы пытаетесь перезагрузить код Clojure или код ClojureScript?   -  person Sam Estep    schedule 14.08.2016
comment
В этом случае речь идет только о коде clojure на стороне сервера, который необходимо перезагрузить. В финальном проекте это будет объединено с boot-reload для перезагрузки cljs на стороне клиента.   -  person Anton Harald    schedule 14.08.2016
comment
У меня не было большого опыта работы с boot-http; почти все, что я сделал с ним, было в контексте Modern ClojureScript, и в этот момент я не использовал boot-refresh. Не могли бы вы добавить к своему вопросу MCVE, демонстрирующий проблему, с которой вы столкнулись?   -  person Sam Estep    schedule 14.08.2016