2017-09-19 37 views
2

我想通過構建桌面應用程序來學習clojurescript。我正在使用的啓動配置如下:figwheel和(watch and reload)之間的區別

(def +name+ "visivo/desktop") 
(def +version+ "0.0.1-SNAPSHOPT") 
(def +description+ "Desktop application for visivo") 
(def +repository+ "https://gitlab.com/visivo/desktop") 

(set-env! 
    :source-paths #{"src/cljs"} 
    :resource-paths #{"resources"} 
    :dependencies '[ 
        [org.clojure/clojure "1.9.0-alpha20"] 
        [org.clojure/clojurescript "1.9.908"] 
        [org.clojure/tools.nrepl "0.2.12" :scope "test"] 
        [com.cemerick/piggieback "0.2.2" :scope "test"] 
        [weasel "0.7.0" :scope "test"] 
        [adzerk/boot-cljs "2.1.3" :scope "test"] 
        [adzerk/boot-cljs-repl "0.3.3" :scope "test"] 
        [adzerk/boot-reload "0.5.2" :scope "test"] 
        [proto-repl "0.3.1" :scope "test"] 
        [proto-repl-charts "0.3.2" :scope "test"] 
        [boot-codox "0.10.3" :scope "test"]]) 

(require 
'[adzerk.boot-cljs  :refer [cljs]] 
'[adzerk.boot-cljs-repl :refer [cljs-repl start-repl]] 
'[adzerk.boot-reload :refer [reload]] 
'[codox.boot   :refer [codox]]) 

(task-options! 
pom {:project  'visivo/desktop 
     :version  +version+ 
     :description +description+ 
     :url   +repository+ 
     :scm   {:url +repository+} 
     :license  {"Eclipse Public License" 
        "http://www.eclipse.org/legal/epl-v10.html"}}) 
(deftask prod [] 
    (comp (cljs :ids #{"main"} 
       :optimizations :advanced) 
     (cljs :ids #{"renderer"} 
       :optimizations :advanced))) 

(deftask dev [] 
    (comp 
     (speak) 
     (watch) 
     (cljs-repl :ids #{"renderer"}) 
     (reload :ids #{"renderer"} 
        :ws-host "localhost" 
        :on-jsload 'visivo.renderer/init 
        :target-path "target") 
     (cljs  :ids #{"renderer"}) 
     (cljs  :ids #{"main"} 
        :compiler-options {:asset-path "target/main.out" 
             :closure-defines {'visivo.main/dev? true}}) 
     (target))) 

(deftask docs [] 
    "Generates documentation for the project from comments" 
    (comp (codox 
      :name +name+ 
      :description +description+ 
      :version +version+ 
      :language :clojurescript 
      :output-path ".") 
     (target :dir #{"docs"}))) 

我願意添加一個任務來運行輪輪。但在此之前,我想知道dev任務中描述的使用figwheel和(watch和reload)函數之間的區別是什麼?

回答

3

下面是一些quotes關於兩者之間的區別:

figwheel - >https://github.com/adzerk-oss/boot-reload它並不像figwheel聰明,因爲美國可以失去狀態,但它主要是足夠的。實際上,我們大多數時候都手動重新加載頁面。

 

Figwheel有更多花俏,但核心功能應該是非常相似 - martinklepsch

 

Figwheel在它的核心是相同的因爲如果您開發Hoplon應用程序,引導重新加載可以爲您做什麼