Clojure 自动刷新/自动重新加载资源

Clojure 自动刷新/自动重新加载资源,clojure,clojurescript,ring,Clojure,Clojurescript,Ring,我是clojure的新手,在html/js/css等发生更改时,我很难弄清楚如何重新加载/刷新浏览器 这是我当前的安装项目。clj 这是我的服务器.clj 如何做到这一点 我习惯于在node中开发,您可以使用诸如browser sync、weinre和supervisor之类的工具。clojure中的等价物是什么?我建议您看看,它可以让您在浏览器中热加载ClojureScript和CSS 当然,没有一种很好的方法来设置您的构建,但是我对SASS等语言的方法是将它们作为一个单独的过程进行观察和编译

我是clojure的新手,在html/js/css等发生更改时,我很难弄清楚如何重新加载/刷新浏览器

这是我当前的安装项目。clj

这是我的服务器.clj

如何做到这一点


我习惯于在node中开发,您可以使用诸如browser sync、weinre和supervisor之类的工具。clojure中的等价物是什么?

我建议您看看,它可以让您在浏览器中热加载ClojureScript和CSS

当然,没有一种很好的方法来设置您的构建,但是我对SASS等语言的方法是将它们作为一个单独的过程进行观察和编译,并让Figwheel观察生成的CSS

例如,在我的一个ClojureScript项目中,我有一个用于LESS编译的脚本文件,它直接使用LESS编译器和实用程序:

#!/usr/bin/env bash
lessc src/styles/main.main.less resources/public/css/main.css --source-map && cp src/styles/*.less resources/public/css
wr "lessc src/styles/main.main.less resources/public/css/main.css --source-map && cp src/styles/*.less resources/public/css" src/**/*.less
当然,你也可以使用像吞咽、网页包之类的东西,或者任何你习惯的工具

另一种选择是使用Leiningen插件,请参见列表

(ns app2.server
  (:use [ring.middleware.resource :only [wrap-resource]]
        [ring.middleware.file-info :only [wrap-file-info]]
        [ring.middleware.reload :refer [wrap-reload]])

        ;;(:require app2.repl)
)


(defn handler
    [request]
    {:status 200}

  )

;handling routing "/" -> "/index.html"
(defn wrap-index [handler]
  (fn [req]
    (println (pr-str req))
    (if (= (:uri req) "/")
      (handler (assoc req :uri "/index.html"))
      (handler req))))

;setting up a simple resource handler for ring
(def app (-> handler
             (wrap-resource "public")
             (wrap-file-info)
             (wrap-index)
             (wrap-reload app {:dirs ["src" "resources"]})
             ))
#!/usr/bin/env bash
lessc src/styles/main.main.less resources/public/css/main.css --source-map && cp src/styles/*.less resources/public/css
wr "lessc src/styles/main.main.less resources/public/css/main.css --source-map && cp src/styles/*.less resources/public/css" src/**/*.less