我的project.clj的project.clj部分有很多重复:
:cljsbuild {
:builds {:dev {:source-paths ["src-cljs"]
:compiler {:output-dir "resources/public/js"
:output-to "resources/public/js/main.js"
:optimizations :whitespace
:pretty-print true
:source-map "resources/public/js/main.map"
:language-in :ecmascript5
:foreign-libs [{:file "third-party/mutation-summary/mutation-summary.js"
:provides ["MutationSummary"]}]}}
:production {:source-paths ["src-cljs"]
:compiler {:output-to "resources/public/js/main-min.js"
:optimizations :advanced
:pretty-print false
:language-in :ecmascript5
:foreign-libs [{:file "third-party/mutation-summary/mutation-summary.js"
:provides ["MutationSummary"]}]}}
:test {:source-paths ["src-cljs" "test-cljs"]
:compiler {:output-to "resources/private/js/unit-test.js"
:optimizations :whitespace
:pretty-print true
:language-in :ecmascript5
:preamble ["react/react.min.js"]
:externs ["react/externs/react.js"]
:foreign-libs [{:file "third-party/mutation-summary/mutation-summary.js"
:provides ["MutationSummary"]}]}}}
:test-commands {"unit-tests" ["slimerjs" :runner
"resources/private/js/unit-test.js"]}}我确信必须能够使用概要文件来删除这种复制,但是我的Leiningen是缺乏的。
发布于 2015-07-06 22:01:56
一个不太漂亮但可行的解决方案是在您的def或defn之上添加一个包含您正在重用的标准参数的defproject或defn,例如:(既不是拼写检查也不是功能示例)
(def defaults
"Returns default compiler options"
{:language-in :ecmascript5
:foreign-libs [{:file "third-party/mutation-summary/mutation-summary.js"
:provides ["MutationSummary"]}]})然后映射到具有自定义值的merge:
:builds {:dev {:source-paths ["src-cljs"]
:compiler (merge defaults {:pretty-print true})https://stackoverflow.com/questions/23455749
复制相似问题