我是clojure的新手,当我对html / js / css等进行更改时,我很难弄清楚如何重新加载/刷新浏览器。
这是我当前的设置 project.clj
(defproject app2 "0.1.0-SNAPSHOT"
:description "FIXME: write this!"
:url "http://exampl.com/FIXME"
:dependencies [[org.clojure/clojure "1.8.0"]
[org.clojure/clojurescript "1.9.89"]
[ring/ring-core "1.5.0"]
[ring/ring-jetty-adapter "1.5.0"]
[enfocus "2.0.0-SNAPSHOT"]]
:plugins [[lein-cljsbuild "1.1.3"]
[lein-ring "0.9.7"]]
:cljsbuild {:builds [{:source-paths ["src/cljs"],
:compiler {
:main "scripts.client"
:output-to "resources/public/js/main.js"
:output-dir "resources/public/js/out"
:asset-path "js/out"
;;:pretty-print true
;;:optimizations :none
}}]}
:main app2.server/app
:ring {:handler app2.server/app :auto-reload? true :auto-refresh? true :reload-paths ["src" "resources"]}
:profiles {
:dev {
:ring {
:nrepl {
:start? true
:port 9000
}
}
}
}
)
这是我的 server.clj
(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"]})
))
如何实现这一目标?
我习惯在节点中开发,你有浏览器同步,weinre和supervisor等工具。 clojure中的等价物是什么?
答案 0 :(得分:3)
我建议您查看figwheel,它可以让您在浏览器中对ClojureScript和CSS进行热重新加载。
当然没有一种设置构建的好方法,但是我选择SASS等语言的方法是将它们作为一个单独的进程进行观察和编译,并让Figwheel观察生成的CSS。
例如,在我的一个ClojureScript项目中,我有一个用于LESS编译的脚本文件,它直接使用LESS编译器和wr实用程序:
#!/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
当然你也可以使用像Gulp,Webpack这样的东西 - 或者你习惯使用的任何工具。
另一种方法是使用Leiningen插件,请参阅列表here。