2022 年 5 月 13 日
ClojureScript 团队
我们很高兴宣布发布 ClojureScript 的新版本。如果您是 ClojureScript 的现有用户,请仔细阅读以下版本说明。
此版本包括对 :as-alias
的支持。它添加了 update-vals
和 update-keys
。它引入了 cljs.math
命名空间,为使用 clojure.math
的代码提供可移植性。iteration
、NaN?
、parse-long
、parse-double
、parse-boolean
和 parse-uuid
也已添加。
此版本还移植了 CLJ-2608,它为序列中的映射解构支持添加了对尾随可连接元素的支持。
ClojureScript 是 Clojure 生态系统中最大的库之一。每次必须编译约 20,000 行 Clojure 代码,这对 REPL 启动时间和其他典型任务来说是一个很大的负担。因此 ClojureScript 是提前 (AOT) 编译的。
然而,由于 AOT 的一些微妙方面,这会导致无法解决的依赖冲突。用户在几乎所有声明的依赖项中都遇到了这个问题:transit-clj、data.json 和 tools.reader。
在与 Clojure 团队协商后,我们决定将所有这些依赖项进行 vendorization。这样我们就可以 AOT 所有内容,并确信不会创建无法通过正常的依赖管理轻松解决的冲突。ClojureScript 不再依赖 transit-clj,只依赖 transit-java。对 data.json 的依赖关系已移除。ClojureScript 对 tools.reader 的依赖关系是为了一个不太常见的用例 - 将编译器引导到 JavaScript。
我们采取了一些措施来确保向后兼容性,并且我们对人们可能遇到的任何问题特别感兴趣。
ClojureScript 的最小 Clojure 版本现在是 1.10。Google Closure Compiler 已更新至 5 月版本。
有关 ClojureScript 1.11.51 中更新的完整列表,请参见 此处