Hoplon с ошибкой Castra при загрузке серверной части

У меня была похожая проблема некоторое время. Когда я использую следующее в своем «build.boot», он не загружает серверную часть, пока я не войду и не отредактирую серверный файл, а затем не сохраню. Мне было интересно, как я могу заставить его загружать бэкэнд на «boot dev».

(deftask dev
 []
 (comp
  (serve
   :port    8000
   :handler 'myapp.handler/app
   :reload  true)
  (watch)
  (hoplon)
  (reload)
  (cljs)))

Ваше здоровье,

::: РЕДАКТИРОВАТЬ::: Если я редактирую файл index.cljs.hl и просто удаляю функцию (rpc/init), затем сохраняю, а затем повторно вставляю функцию (rpc/init), кажется, что загружается серверная часть. Я пробовал много вещей, от использования при загрузке страницы до перемещения позиции (rpc/init) на индексной странице. Я не совсем понимаю, почему для его работы требуется редактирование и сохранение.


person phlie    schedule 19.04.2018    source источник
comment
Я действительно не понимаю, как редактирование файла cljs может привести к загрузке бэкэнда. С гоплоном не знаком, так что это только предположение: может быть, (rpc/init) не вызывается в нужное время? Простым тестом было бы сделать что-то вроде (js/setTimeout #(rpc/init) 10000) или даже запустить его из консоли / repl и посмотреть, работает ли это? Если да, то, вероятно, rpc/init вызывается слишком рано.   -  person nha    schedule 23.04.2018


Ответы (1)


Скорее всего, есть лучший способ, но следующий должен работать:

(deftask dev
 []
 (comp
  (serve
   :port    8000
   :handler 'myapp.handler/app
   :reload  true)

  ;; duplicate these
  (hoplon)
  (reload)
  (cljs)

  (watch)
  (hoplon)
  (reload)
  (cljs)))

Затем вы можете реорганизовать его следующим образом:

(deftask do-stuff []
 (comp
  (hoplon)
  (reload)
  (cljs)))


(deftask dev
 []
 (comp
  (serve
   :port    8000
   :handler 'myapp.handler/app
   :reload  true)
   (do-stuff) ; init
   (watch)
   (do-stuff)))
person nha    schedule 20.04.2018
comment
Я попробовал это, и я не думаю, что это решает проблему. Насколько я могу судить, похоже, что проблема заключается в правильной загрузке (rpc/init), я попробую еще немного отладить, а затем опубликую. - person phlie; 20.04.2018