我需要在我的Clojure(花園)和我的ClojureScript(試劑)之間共享一個命名空間。Clojure不需要cljc文件
目前該項目的文件夾看起來像這樣:
src/
clj/
name/
css.clj
cljs/
name/
core.cljs
cljc/
name/
config.cljc
的config.cljc
文件具有以下命名空間:(ns name.config)
。
我試圖從clj/name/css.clj
的內部引用這個命名空間的require。
(ns name.css
(:require [name.config :as config]))
但是,這會導致Garden發生編譯錯誤。
引起:java.io.FileNotFoundException:找不到名稱/ config__init.class或名稱/ config.clj在類路徑上。
我想這甚至不檢查cljc
文件。
我加"src/cljc"
到:source-paths
向量project.clj
和:garden :builds
,但我甚至重新啓動構建過程後得到同樣的錯誤。
我在Clojure 1.7.0和1.8.0上看到了這種行爲。
也許值得一提的是它在ClojureScript中沒有問題(使用Figwheel處理構建)。我可以要求和使用新的命名空間,而不會有任何問題。
看來我必須錯過一些非常簡單的事情,因爲沒有任何關於.cljc
文件的文檔甚至提到需要它們。
'project.clj'在''1.7.0''有'org.clojure/clojure',當我啓動一個REPL時,它確認'Clojure 1.7.0'。還有什麼需要在'project.clj'中設置? –
我也使用1.8.0時遇到同樣的問題。 –
您使用的是哪種版本的Leinigen?如果存在,您可以嘗試更近的一個。 –