我需要在我的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?如果存在,您可以尝试更近的一个。 –