2012-11-25 21 views
10

Tôi đang sử dụng clj-webdriver để thực hiện một số thử nghiệm dựa trên Selenium trên ứng dụng web Clojurescript. Đôi khi, có một cái gì đó trong ứng dụng chính nó mà tôi muốn để có thể fiddle với trong khi thử nghiệm đang chạy. Tôi thấy rằng clj-webdriver có một cái gì đó gọi là (execute-script js args) có một chuỗi mã Javascript và chạy nó trên trình duyệt thử nghiệm hiện tại. Tôi đã thử nghiệm này và nó có vẻ làm việc. Tôi muốn chuyển mã clojurescript đến execute-script. Tôi cần cái gì đó sẽ biên dịch mẫu Clojure của tôi thành mã Clojurescript.Làm cách nào để tôi biên dịch các biểu mẫu Clojurescript từ trong Clojure?

Tôi thấy sau đây question loại liên quan đó. Nó nói để sử dụng hàm js/emit từ ly hợp. Tôi đã tìm kiếm ly hợp và thấy nó chỉ đề cập đến trong (xem) trong cljs-views.clj tôi đã cố gắng điều sau đây trong một repl:

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

Đây không phải là khủng khiếp đáng ngạc nhiên, làm thế nào js có thể là trong một namesapce clojure thường xuyên? Nhưng làm cách nào để sử dụng hệ thống này (hoặc bất kỳ hệ thống nào khác) để tạo mã Clojurescript (javascript) mà tôi có thể chuyển đến execute-script?

Trả lời

4

Sử dụng cljs.closure/build chức năng:

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

Có nhiều ví dụ trong một chú thích ở dưới cùng của closure.clj. Có các tùy chọn để xuất ra một tệp.

Các vấn đề liên quan