; another approach would be to have a gereral build config that doesn't have any ; build tool specific information in it ; I think I like this better ;cljs-builds.edn ; don't include any build tool specific information in this config {:dev {:source-paths ["src" "dev"] :compiler { :output-to "example.js" :optimizations :none ... }}} ; in the project.clj the above could be entered like this :cljs-builds { :dev {...} :prod {...}} ; The above has some real advantages. We can write one library to read validate and thoroughly document this ; general configuration format. And then leave the tool specific validation to the individual tools. ; We then place "build" specific information in the build tool configuration wherever that may be ; figwheel.edn or in project.clj depending on mode of tool { :server-port 4555 :builds {:dev {:on-jsload 'example.core/reload}} } ;this is cleaner but maybe less clear when someone is trying to understand the config ; in a project.clj the above could be entered under the :figwheel key like so :figwheel { :server-port 4555 :builds {} }