Compilation Cljs:硬编码编译时的编译日期
有没有人能给我一些提示(或者整个解决方案!)来回答这个问题: 在Clojurescript项目中,如何在使用应用程序时自动将编译日期/时间硬编码为一个符号以显示它Compilation Cljs:硬编码编译时的编译日期,compilation,clojurescript,Compilation,Clojurescript,有没有人能给我一些提示(或者整个解决方案!)来回答这个问题: 在Clojurescript项目中,如何在使用应用程序时自动将编译日期/时间硬编码为一个符号以显示它 谢谢。有多种解决方案: 使用插件 将lein git版本插件添加到项目中。它将生成一个包含vars的名称空间,其中包含项目版本、git版本和时间戳等信息。您可以从其他名称空间引用它们 使用宏 您可以在.clj或.cljc文件中定义宏: (defmacro generate-build-timestamp [] (System/cu
谢谢。有多种解决方案: 使用插件 将lein git版本插件添加到项目中。它将生成一个包含vars的名称空间,其中包含项目版本、git版本和时间戳等信息。您可以从其他名称空间引用它们 使用宏 您可以在
.clj
或.cljc
文件中定义宏:
(defmacro generate-build-timestamp []
(System/currentTimeMillis))
并在ClojureScript代码中使用它:
(def build-timestamp (generate-build-timestamp))
由于宏代码将在编译过程中执行,因此宏生成的值将填充到已编译的JavaScript代码中。谢谢,我需要的是lein git版本。我更喜欢您的第二个更简单的解决方案,但无法让它与js/Date一起工作。也许它必须在.clj文件中?@Gra宏和ClojureScript编译在JVM上运行,因此不能在宏中调用JavaScript API。您可以将ClojureScript代码修改为:
(def build timestamp(js/Date.(generate build timestamp))
,或者让您的宏使用js/Date发出代码。
构造函数调用:(defmacro generate build timestamp[](list'js/Date.(System/currentTimeMillis)))
。