Build 如何设置Leiningen/ClojureScript编译器以支持用户脚本?

Build 如何设置Leiningen/ClojureScript编译器以支持用户脚本?,build,clojure,clojurescript,leiningen,Build,Clojure,Clojurescript,Leiningen,用户脚本需要以开头。如何设置Leiningen和/或ClojureScript编译器从文本文件插入预定义的元块 我尝试过以下方法: ; test ;; test 2 (comment test 3) 但是它被剥离了(可能是因为{:optimizations:advanced}?) 请试着解释和描述你的答案,我在Clojure是一个彻头彻尾的傻瓜,对Leiningen几乎一无所知(我设法获得了一个简单的ClojureScript构建函数,但仅此而已——我想通过编写简单的用户脚本开始学习Cloju

用户脚本需要以开头。如何设置Leiningen和/或ClojureScript编译器从文本文件插入预定义的元块

我尝试过以下方法:

; test
;; test 2
(comment test 3)
但是它被剥离了(可能是因为
{:optimizations:advanced}
?)


请试着解释和描述你的答案,我在Clojure是一个彻头彻尾的傻瓜,对Leiningen几乎一无所知(我设法获得了一个简单的ClojureScript构建函数,但仅此而已——我想通过编写简单的用户脚本开始学习Clojure,我可能会实际使用它).

您可以使用
:preamble
选项为输出文件添加数据块。您可以看到编译器选项(向下滚动一点…指向序言部分的链接不起作用,因为还有另一个具有序言id的div)

以下是文档,供参考:

:序言

将给定文件的内容前置到每个输出文件。只有 对除
以外的优化有效:无

默认为空向量
[]

:preamble ["license.js"]

我的猜测是,这必须在cljs/closure中得到支持。如果这只是生成的文件开头的一个“文本块”,我会在编译后执行
cat metadata compiled.js>metadata.js
步骤。是的,我认为它不直接支持它。我对Leiningen以及它是否支持某种编译后钩子一无所知(另外,由于构建文件在Clojure中,这对我来说有点困难,因为我希望这个项目用于学习Clojure)。我不想使用像bash中的脚本调用Leiningen然后处理结果文件这样的巫术黑客解决方案-感觉不对,我认为应该由构建工具来处理(至少这是我目前使用的其他构建工具中的推荐方式)。这看起来很有希望,遗憾的是我不知道如何使用它-
“license.js”
文件需要保存在资源文件夹中。我忘记了Leiningen中的默认设置(
“src/main/clojure”
“src/main/cljs”
),但您可以使用Leiningen中的设置。我只是在我的一个项目上试用了一下,效果如期。