首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免cljsbuild项目中的重复?

如何避免cljsbuild项目中的重复?
EN

Stack Overflow用户
提问于 2014-05-04 11:33:33
回答 1查看 267关注 0票数 4

我的project.cljproject.clj部分有很多重复:

代码语言:javascript
复制
: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是缺乏的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-06 22:01:56

一个不太漂亮但可行的解决方案是在您的defdefn之上添加一个包含您正在重用的标准参数的defprojectdefn,例如:(既不是拼写检查也不是功能示例)

代码语言:javascript
复制
(def defaults
   "Returns default compiler options"
   {:language-in :ecmascript5
    :foreign-libs [{:file "third-party/mutation-summary/mutation-summary.js"
                    :provides ["MutationSummary"]}]})

然后映射到具有自定义值的merge

代码语言:javascript
复制
 :builds {:dev {:source-paths ["src-cljs"]
                :compiler     (merge defaults {:pretty-print true})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23455749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档