繁体   English   中英

如何在 Clojure/ClojureScript 项目上解释 for:cljsbuild 的这种安排? 以及如何扩展它以进行持续部署?

[英]How to explain this arrangement for :cljsbuild on a Clojure/ClojureScript project? And how to extend it for Continuous Deployment?

我一直在处理这个名为clojurescript.csv的 Clojure/Clojurescript 项目。

project.clj 文件中,有一种特殊:cljsbuild构造形式,我还没有见过。

  :cljsbuild {:builds [{:id "whitespace"
                        :source-paths ["src" "test"]
                        :compiler {:output-to "target/js/whitespace.js"
                                   :optimizations :whitespace
                                   :pretty-print true}}
                       {:id "simple"
                        :source-paths ["src" "test"]
                        :compiler {:output-to "target/js/simple.js"
                                   :optimizations :simple
                                   :pretty-print true}}
                       {:id "advanced"
                        :source-paths ["src" "test"]
                        :compiler {:output-to "target/js/advanced.js"
                                   :optimizations :advanced
                                   :pretty-print false}}]

通常,我会看到一个简短的声明,例如:

:source-paths ["src"]

在这个存储库中,方法是不同的。 尽管每个“构建路径”都使用相同的source-path ,但存在不同的 ID 和优化路径。

1 - 构建这些不同的 ID 有什么意义? 这有什么用?

我没看到。

2 - 另外,我想扩展此文件以进行持续部署(在 GitHub 注册表上发布 Maven package)。 通常,在source-paths下面,我添加以下内容:

source-paths ["src"]
  ;; Change your environment variables (maybe editing .zshrc or .bashrc) to have:
  ;; export LEIN_USERNAME="pdelfino"
  ;; export LEIN_PASSWORD="your-personal-access-token-the-same-used-on-.npmrc"
  ;; LEIN_PASSWORD should use the same Token used by .npmrc
  ;; Also, do "LEIN_SNAPSHOTS_IN_RELEASE=true lein install" or edit your .zshrc:
  ;; export LEIN_SNAPSHOTS_IN_RELEASE=true
  :repositories {"releases"  {:url           "https://maven.pkg.github.com/tallyfor/*"
                              :username      :env/LEIN_USERNAME ;; change your env
                              :password      :env/LEIN_PASSWORD}}

  :pom-addition [:distribution-management [:repository [:id "github"]
                                           [:name "GitHub Packages"]
                                           [:url "https://maven.pkg.github.com/my-organization/repository-name"]]]

我应该加3次吗? 每个ID一个?

感觉非常重复。

lein-cljsbuild允许您像这样指定多个构建配置 编译时,您可以提供要构建的构建的 ID。 因此,不要只执行 lein lein cljsbuild once lein cljsbuild once advanced

这很常见,因此您可以拥有未优化的开发构建和:advanced优化的发布构建。 通常你会在构建配置中有更多的差异,例如。 至少advanced构建不包括"test"源路径。 由于这是一个图书馆项目,所以这很好。 作者可能想轻松地测试不同的优化级别。

:repositories:pom-additionproject.clj中的顶级或别名/配置文件定义。 他们不会将 go 放入:cljsbuild配置 map。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM