2015-05-20 2 views
1

У меня есть проект, содержащий как Clojure & Код ClojureScript. Я хотел бы включить неоптимизированный ClojureScript, когда я запускаю свой сервер через lein ring server и оптимизировал ClojureScript в противном случае. Каков идиоматический способ сделать это?Clojure Ring: Как определить, работает ли сервер разработки?

Я использую:

[[bidi "1.19.0"] 
[hiccup "1.0.5"] 
[org.clojure/clojure "1.7.0-beta3"] 
[org.clojure/clojurescript "0.0-3269"]] 

[[lein-cljsbuild "1.0.4"] 
[lein-ring "0.9.4"]] 

Мой обработчик только прост:

(def app (-> ["/" {:get {"" index-view}}] 
      (compile-route) 
      (make-handler))) 

и это мой сервер директива:

:ring {:handler webapp.core/app} 

Я ищу способ чтобы иметь возможность сделать это на моих мнениях:

(dev-server? request) ;; => true if it's a development server, otherwise false. 

ответ

1

Идиоматический способ сделать это - использовать leiningen profiles, используя профиль :dev. Затем вы можете обеспечить внутри профиля dev, что ваша сборка ClojureScript происходит без оптимизации, ср. leiningen cljsbuild compilation profiles.

Если вы хотите быть в состоянии идентифицировать devserver работает, вы можете использовать environ - включать :env {:dev true} в вашем профиле :dev, а затем в своем коде вы можете просто позвонить (env :dev). Вы можете взглянуть на reagent-template для вдохновения.

+0

Моя проблема не в построении ClojureScript. – muhuk

+0

Я обновил ответ для решения проблемы 'dev-server? '. Взгляните на шаблон-реагент, который создает несколько сложный cljsbuild, где ваша проблема (выбор оптимизирована/неоптимизирована) решена. – schaueho