gpt4 book ai didi

clojure - Leiningen 2 步构建 : how to combine lein-less and lein-asset-minifier

转载 作者:行者123 更新时间:2023-12-04 02:27:41 25 4
gpt4 key购买 nike

我正在制作一个部署在 Heroku 上的 Clojure/ClojureScript 网站。我正在使用 Leiningen 进行项目管理。

我想用 LESS 编写我的样式表。我需要构建过程将 LESS 文件编译成 CSS,然后缩小这些 CSS 文件;显然,我不希望生成的 CSS 文件受版本控制。

LESS 文件 -- lein-less --> CSS 文件 -- lein-asset-minifier --> 缩小的 CSS 文件

我试图用 lein-less 来实现它和 lein-asset-minifier 莱宁根插件。我的尝试包括声明 leiningen.lessminify-assets.plugin/hooks作为 :uberjar 的钩子(Hook)任务,按正确的顺序(参见下面的代码)。但运行 lein uberjar失败并出现以下错误:

Uberjar aborting because jar failed: resources/public/css/site.css (No such file or directory)

因此,似乎没有强制执行构建步骤的顺序。

是否可以使用这些 Leiningen 插件来实现这个多步骤构建?如果没有,人们是如何做到的?

代码

这是我的 project.clj 的相关部分:
(defproject sncf-cljs "0.1.0-SNAPSHOT"
;; ...
:min-lein-version "2.5.0"
:source-paths ["src/clj" "src/cljs"]
:dependencies [
;; ...
]

:plugins [
[lein-cljsbuild "1.0.4"]
[lein-environ "1.0.0"]
[lein-ring "0.9.1"]

[lein-asset-minifier "0.2.2"]
[lein-less "1.7.2"]]


:less {:source-paths ["src/less"]
:target-path "resources/public/css"}



:uberjar-name "sncf-cljs.jar"

:minify-assets {:assets
{"resources/public/css/site.min.css" "resources/public/css/site.css"}}

:cljsbuild {
;; ...
}

:profiles {
;; ...

:uberjar {:hooks [leiningen.less
leiningen.cljsbuild
minify-assets.plugin/hooks]

:env {:production true}
:aot :all
:omit-source true
:cljsbuild {:jar true
:builds {:app
{:source-paths ["env/prod/cljs"]
:compiler
{:optimizations :advanced
:pretty-print false}}}}}

:production {:ring {:open-browser? false
:stacktraces? false
:auto-reload? false}
:cljsbuild {:builds {:app {:compiler {:main "sncf-cljs.prod"}}}}
}})

最佳答案

我做了一些研究,因为这是一个有趣的问题。所以我环顾四周,找不到如何配置它的信息。所以我继续搜索,我找到了这个任务的插件。

https://github.com/kumarshantanu/lein-cascade

github页面上的自述文件应该足以解决这个任务。

关于clojure - Leiningen 2 步构建 : how to combine lein-less and lein-asset-minifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28784768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com