2012-10-14 26 views
9

Trong mã clojurescript của tôi, tôi có như sau:Mua Clojurescript repl/connect để không biên dịch khi đang trong quá trình sản xuất?

(defn onload [] (repl/connect "http://localhost:9000/repl")) 

(set! (.-onload js/window) onload) 

Các Clojurescript repl là rất hữu ích trong việc phát triển, nhưng tôi do dự để lại nó trong các mã trong sản xuất. Cách sạch nhất để có mã ở trên là gì trong quá trình phát triển (biên dịch đơn giản), nhưng vắng mặt trong quá trình sản xuất (biên dịch nâng cao)?

Trả lời

3

Rất tiếc, hiện tại không có cách nào được xác định rõ ràng để thực hiện việc biên dịch có điều kiện trong ClojureScript.

Bạn có thể thêm biến cấu hình để kiểm soát xem có bắt đầu REPL theo nhiều cách hay không, nhưng một cách nhanh chóng và dễ dàng là lấy tên máy chủ của trang hiện tại và chỉ gọi repl/connnect nếu đó là "localhost" hoặc bất kỳ tên miền nào khác bạn đang sử dụng cho công việc phát triển.

+0

Suy nghĩ to, điều đó cũng có nghĩa là tất cả mã cho repl/connect cũng sẽ được biên dịch vào mã sản xuất của tôi. Tôi thành thật không có ý tưởng lớn như thế nào mà phân đoạn biên dịch là, chỉ cần làm một điểm. –

1

Tôi nghĩ rằng sự kết hợp giữa các cấu hình lein2 và cljsbuild src-path munging có thể thực hiện thủ thuật. ví dụ, tạo ra một không gian tên mà chỉ cần tải repl của bạn, và loại trừ nó với một hồ sơ chạy cho các biên dịch cuối cùng (có thể có thể cần phải tạo một không gian tên giả trong một thư mục src-path).

7

Hướng dẫn modern-cljs mô tả chính xác cách giải quyết here này.

Hy vọng điều đó sẽ hữu ích!

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