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

Gra*_*Gra 2 compilation clojurescript

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

在Clojurescript项目中,如何在使用应用程序时自动对符号中的编译日期/时间进行硬编码以显示它?

谢谢.

Pio*_*dyl 5

有多种解决方案:

使用lein-git-version插件

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

使用宏

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

(defmacro generate-build-timestamp []
  (System/currentTimeMillis))
Run Code Online (Sandbox Code Playgroud)

并在ClojureScript代码中使用它:

(def build-timestamp (generate-build-timestamp))
Run Code Online (Sandbox Code Playgroud)

由于宏代码将在编译期间执行,因此宏生成的值将填充在已编译的JavaScript代码中.