如何从Clojure中编译Clojurescript表单?

如何从Clojure中编译Clojurescript表单?,clojure,clojurescript,Clojure,Clojurescript,我正在使用CLJWebDriver在Clojurescript web应用程序上进行一些基于Selenium的测试。有时,在测试运行时,我希望能够在应用程序本身中处理一些东西。我看到cljwebdriver有一个名为(executescriptjsargs)的东西,它接受一个Javascript代码字符串并在当前的测试浏览器上运行。我已经测试过了,它似乎是有效的。不过,我想将clojurescript代码传递给执行脚本。我需要一些东西将我的Clojure表单编译成Clojurescript代码

我正在使用CLJWebDriver在Clojurescript web应用程序上进行一些基于Selenium的测试。有时,在测试运行时,我希望能够在应用程序本身中处理一些东西。我看到cljwebdriver有一个名为
(executescriptjsargs)
的东西,它接受一个Javascript代码字符串并在当前的测试浏览器上运行。我已经测试过了,它似乎是有效的。不过,我想将clojurescript代码传递给
执行脚本。我需要一些东西将我的Clojure表单编译成Clojurescript代码

我看到了以下与此相关的内容。它说使用离合器的js/emit函数。我搜索了离合器,发现它仅在中的(视图)中提到,我已尝试在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>
user>(使用'com.ashafa.clutch.cljs视图)
无
用户>查看
用户>js/emit
CompilerException java.lang.RuntimeException:没有这样的名称空间:js,#正在编译(没有源路径:1)
用户>

这并不奇怪,js怎么会出现在常规clojure名称空间中?但是我如何使用这个(或任何其他)系统来生成Clojurescript(javascript)代码,并将其传递给
执行脚本

使用
cljs.closure/build
函数:

(use '[cljs.closure :only [build]])
(build '(print "hello") {:optimizations :simple :pretty-print true})
下面的评论中有更多的例子。还有输出到文件的选项