Leiningen project.clj 文件中 :hooks [leiningen.cljsbuild] 的用途是什么?

What is the purpose of :hooks [leiningen.cljsbuild] in a Leiningen project.clj file?

我一直在查看 Clojure/ClojureScript Web 应用程序的几个项目模板。有些在 Leiningen project.clj

中有以下行
 :hooks [leiningen.cljsbuild]

而其他人还没有。

这一行的目的是什么?你为什么要使用它,为什么不呢?使用它有优势还是劣势?

:hooks 选项用于修改内置的 Leiningen 任务。 Leiningen's documentation.

中描述了所有详细信息

leiningen.cljsbuild hooks are adding ClojureScript support in lein's built-in tasks: compile, test, jar.

如果您的项目同时包含 Clojure 和 ClojureScript 文件,它可能会有用。通过使用钩子,你可以 compile, test 或使用 lein 的内置任务将它们 jar 打包在一个 运行 中,而不是为 Clojure 单独调用它们(内置tasks) 和 ClojureScript with lein-cljsbuild tasks.