Cljs:在编译时硬编码编译日期

Cljs: Hardcode the compilation date at compilation time

有人会给我提示(或整个解决方案!)这个问题吗:

在 Clojurescript 项目中,如何自动将编译 date/time 硬编码到符号中,以便在使用应用程序时显示它?

谢谢。

有多种解法:

使用lein-git-version插件

将 lein-git-version 插件添加到您的项目中。它将生成一个包含 vars 的命名空间,其中包含项目版本、git 修订版和时间戳等信息。您可以从其他命名空间引用它们。

使用宏

您可以在 .clj.cljc 文件中定义宏:

(defmacro generate-build-timestamp []
  (System/currentTimeMillis))

并在您的 ClojureScript 代码中使用它:

(def build-timestamp (generate-build-timestamp))

由于宏代码会在编译时执行,所以宏产生的值会填充到编译后的JavaScript代码中。