2014-09-26 39 views
1

在設置Clojure + ClojureScript項目時,最常見的情況是,我看過人們將他們的Clojure源代碼目錄的ClojureScript源代碼目錄放在它們的project.clj的頂層:source-paths上。例如,Chestnut, a Clojure + ClojureScript template, uses你爲什麼要把你的ClojureScript源代碼目錄放在:source-paths?

:source-paths ["src/clj" "src/cljs"] 

我可能不理解Leiningen足夠的,但不只是把這些目錄在類路徑?你爲什麼要在類路徑上使用ClojureScript?我會認爲,指向cljsbuild並讓它編譯就足夠了。

+0

IIRC,它使得clj和cljs fns之間的REPL交互更容易...因此最終演變爲cljx,我們正在爲兩個目標編譯一些相同的fns(和ns)。 – 2014-09-26 15:44:25

+0

呵呵。你知道它是如何使它更容易嗎? Clojure實際上並不會加載任何'.cljs'文件,對吧? – Peeja 2014-09-26 15:46:19

+0

我很確定它至少可以讓ns在repl上可用,因爲大多數cljs也是有效的clj ...我認爲它也可以減輕我在atm時遇到的一些問題,所以我要去在當前項目的一個分支上嘗試它:) – 2014-09-26 15:49:18

回答

2

將ClojureScript源樹添加到:source-paths是確保Leiningen將其包含在jar和überjars中的最簡單方法之一。然而,它並不適用於所有項目,因此ClojureScript庫使用各種不同的安排。

  • 如果你正在實施一個純粹的ClojureScript庫中,你會發現它方便地使用:source-paths方法 - 或者你可以把默認的"src"目錄內的.cljs文件。
  • 如果您使用cljx,你要包括.clj.cljs文件在你的罐子產生,所以像Sente's project.clj(鏈接到1.1.0版本)可以更好地爲您。
  • 如果你不需要將你的ClojureScript源文件包含在你的jar文件中,你可以自由地將你的.cljs文件提交給lein-cljsbuild。
相關問題