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

时间:2017-09-05 09:11:10

标签: compilation clojurescript

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

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

感谢。

1 个答案:

答案 0 :(得分:5)

有多种解决方案:

使用lein-git-version插件

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

使用宏

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

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

并在ClojureScript代码中使用它:

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

由于宏代码将在编译期间执行,宏生成的值将填入已编译的JavaScript代码中。