运行同时有多个lein任务

Run more than one lein task at the same time

我目前是 Leiningen 项目的新手。我想在运行中使用 lein-lessminify-assets 将 less 编译为 css 所以我发现我应该对 less 文件使用 lein less auto 对 javascripts 使用 lein minify-assets watch和 HTML 文件。

我正在使用 lein-cascade 来操作它们,但它仍在执行 lein less auto 任务,并没有转到 lein minify-assets watch

这是我的项目代码

(defproject indecorlein "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.8.0"]]
  :plugins [[lein-asset-minifier "0.4.3"]
            [lein-less "1.7.5"]
            [lein-cascade "0.1.2"]]

  :min-lein-version "2.5.0"

  :cascade {
            "lessc" [["less" "auto"]]
            "min" [["minify-assets" "watch"]]
            "amp" ["lessc" "min"]
            }

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

  :minify-assets [
                  [:html {:source "dev/resources/html" :target "dev/minified/html"}]
                  [:css {:source "dev/resources/css" :target "dev/minified/css/styles.min.css"}]
                  [:js {:source ["dev/res/js"] :target "dev/minified/js/amp.min.js"}]])

也许有关于这个或我的解决方案只是 运行 单独终端选项卡上的任务。

问题是 lein less autolein minify-assets watch 都没有 return。我过去曾在控制台中单独使用过 lein less auto

您可以使用 lein-pdo 插件。将它添加到你的插件中并定义一个别名:

  :plugins [...
            [lein-pdo "0.1.1"]]

  :aliases {"watch" ["pdo" ["less" "auto"]
                           ["minify-assets" "watch"]]}

然后你可以 运行 lein watch 这将同时 运行 这两个任务。