Как скомпилировать формы 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 по. Есть также варианты вывода в файл.