我正在使用clj-webdriver在Clojurescript web应用程序上做一些基于Selenium的测试。有时,我希望在测试运行时,应用程序本身中有一些东西可以摆弄。我已经测试过了,它似乎起作用了。不过,我还是想把clojurescript代码传递给execute-script。我需要一些东西,可以将我的Clojure表单编译成Clojurescript代码。
我在下面的question中看到了它们之间的关系。它说要使用clutch中的js/emit函数。我搜索了clutch,发现它只在cljs-views.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命名空间中呢?但是如何使用这个(或任何其他)系统生成可以传递给execute-script的Clojurescript (javascript)代码呢
发布于 2013-01-15 08:04:33
使用cljs.closure/build函数:
(use '[cljs.closure :only [build]])
(build '(print "hello") {:optimizations :simple :pretty-print true})在closure.clj底部的评论中有更多的例子。也有输出到文件的选项。
https://stackoverflow.com/questions/13555980
复制相似问题