我一直在处理这个名为 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 包)。通常,我会在
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 cljsbuild once
,而是 lein cljsbuild once advanced
。
这很常见,因此您可以拥有未优化的开发版本和
:advanced
优化的发布版本。通常,您在构建配置方面会有更多差异,例如。至少 advanced
构建不包括 "test"
源路径。由于这是一个图书馆项目,所以这很好。作者可能想轻松地测试不同的优化级别。
:repositories
和 :pom-addition
是 project.clj
中的顶级或别名/配置文件定义。它们不会进入 :cljsbuild
配置映射。