Как скомпилировать формы Clojurescript из Clojure?

Я использую clj-webdriver для тестирования на основе селена в веб-приложении Clojurescript. Иногда в самом приложении есть что-то, с чем я хочу иметь возможность возиться во время выполнения теста. Я вижу, что у clj-webdriver есть что-то под названием (execute-script js args) это принимает строку кода Javascript и запускает его в текущем браузере тестирования. Я проверил это, и, кажется, это работает. Я хотел бы передать код clojurescript в execute-script хотя. Мне нужно что-то, что скомпилирует мой Clojure форма в код Clojurescript.

Я вижу следующие вопрос такого рода относится. Он говорит использовать функцию js / emit от муфты. Я искал сцепление и нашел его упомянутым только в (view) в cljs-просмотры.clj по Я попытался сделать следующее в repl:

user> (use 'com.ashafa.clutch.cljs-views)  
  nil  
user> view 
  <core$comp$fn__4034 clojure.core$comp$fn__4034@ebd3f80> 
user> js/emit 
  CompilerException java.lang.RuntimeException: No such namespace: js, #compiling (NO_SOURCE_PATH:1)   
user>

это не очень удивительно, как js может быть в обычном Clojure namesapce? Но как использовать эту (или любую другую) систему для генерации кода Clojurescript (javascript), который я может перейти к execute-script?

1 ответов


использовать cljs.closure/build функция:

(use '[cljs.closure :only [build]])
(build '(print "hello") {:optimizations :simple :pretty-print true})

есть больше примеров в комментарии в нижней части закрытие.clj по. Есть также варианты вывода в файл.