I need to share a namespace between my Clojure (Garden) and my ClojureScript (Reagent).
Currently the project folder looks like this:
src/
clj/
name/
css.clj
cljs/
name/
core.cljs
cljc/
name/
config.cljc
The config.cljc
file has the following namespace: (ns name.config)
.
I've tried to reference this namespace from inside clj/name/css.clj
with a require.
(ns name.css
(:require [name.config :as config]))
However, this results in a compile error from Garden.
Caused by: java.io.FileNotFoundException: Could not locate name/config__init.class or name/config.clj on classpath.
I guess it's not even checking for cljc
files.
I added "src/cljc"
to the :source-paths
vector in project.clj
and :garden :builds
but I get the same error even after restarting the build processes.
I see this behaviour on Clojure 1.7.0 and 1.8.0.
It might also be worth mentioning that it works without issues in ClojureScript (with Figwheel handling the build). I can require and use the new namespace without problems.
It seems like I must be missing something really simple, because none of the documentation around .cljc
files even mentions requiring them.
project.clj
hasorg.clojure/clojure
at"1.7.0"
and when I boot up a REPL it confirmsClojure 1.7.0
. Anything else that needs to be set inproject.clj
? – Premeditation