2016-07-22 8 views
2

私はclojureには新しく、html/js/cssなどの変更があったときにブラウザをリロード/リフレッシュする方法がわかりません。アセットの自動リフレッシュ/自動リロード

これはこれは私の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"]}) 
      )) 

どのようにCAである私の現在の設定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 
       } 
      } 
      } 
    } 
) 

ですこれは成し遂げられますか?

私はノードで開発するのに慣れていますが、ブラウザの同期、管理者、監督のようなツールがあります。 clojureの等価物は何ですか?

答えて

3

figwheelをご覧になることをお勧めします。ClojureScriptのとCSSをブラウザにホットリロードすることができます。

もちろん、ビルドのセットアップには良い方法はありませんが、SASSなどの言語を使う私のやり方は、それらを別々のプロセスとして見てコンパイルし、Figwheelに生成されたCSSを見させることです。例えば

は、私のClojureScriptプロジェクトの一つに、私が直接LESSコンパイラとwrユーティリティを使用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 

あなたもがぶ飲みのようなものを使用することができ、 Webpack - またはあなたが慣れている任意のツール。

代わりに、Leiningenプラグインを使用することです(リストhereを参照)。

関連する問題