关于clojurescript:使用Boot clojure自动化

Automating with Boot clojure

我一直在尝试尽可能地遵循这些教程,但是对于我一生来说,似乎无法实时重新加载工作

我的目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
/resources
 |------/public
         |------/css
         |------/js
                 |---- main.cljs.edn
/src
|----/app2
      |---- server.clj
|----/cljs
      |-----/scripts
             |------- client.cljs
             |------- dev.cljs

我有以下build.boot

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
(set-env!
 :source-paths #{"src/cljs"}
 :resource-paths #{"resources/public"}

 :dependencies '[
     [adzerk/boot-cljs"1.7.170-3" :scope"test"]
     [adzerk/boot-cljs-repl"0.3.2" :scope"test"]
     [com.cemerick/piggieback"0.2.1" :scope"test"]
     [weasel"0.7.0" :scope"test"]
     [org.clojure/tools.nrepl"0.2.12" :scope"test"]
     [pandeiro/boot-http"0.7.3" :scope"test"]
     [adzerk/boot-reload"0.4.12" :scope"test"]
     [tailrecursion/boot.ring"0.2.1" :scope"test"]
     [org.clojure/clojure"1.8.0"]
     [org.clojure/clojurescript"1.9.89"]
     [ring/ring-core"1.5.0" :scope"test"]
     [ring/ring-jetty-adapter"1.5.0" :scope"test"]
     [enfocus"2.0.0-SNAPSHOT"]
    ])

(require
  '[adzerk.boot-cljs :refer [cljs]]
  '[pandeiro.boot-http :refer [serve]]
  ;;'[tailrecursion.boot.task.ring :as ring]
  '[adzerk.boot-reload :refer [reload]]
  '[adzerk.boot-cljs-repl :refer [cljs-repl start-repl repl-env]])

  (deftask dev []
  (comp
        (watch)
        (reload :port 9001 :on-jsload 'scripts.dev/refresh)
        (cljs-repl :nrepl-opts {:port 9000})
        (cljs :ids #{"js/main"} :source-map true :optimizations :none)
        (serve :dir"resources/public" :port 3000)
        (target :dir #{"target"})
        ))

我的过程输出似乎还可以

编写adzerk / boot_reload / init653.cljs以连接到ws:// localhost:9001 ...
编写boot_cljs_repl.cljs ...

正在启动文件监视程序(CTRL-C退出)...

Adding :require adzerk.boot-reload.init653 to main.cljs.edn... nREPL
server started on port 9000 on host 127.0.0.1 - nrepl://127.0.0.1:9000
Adding :require adzerk.boot-cljs-repl to main.cljs.edn... Compiling
ClojureScript... ? js/main.js 2016-07-23
02:38:50.287:INFO::clojure-agent-send-off-pool-0: Logging initialized
@51878ms 2016-07-23
02:38:50.450:INFO:oejs.Server:clojure-agent-send-off-pool-0:
jetty-9.2.10.v20150310 2016-07-23
02:38:50.501:INFO:oejs.ServerConnector:clojure-agent-send-off-pool-0:
Started ServerConnector@4451c4ae{HTTP/1.1}{0.0.0.0:3000} 2016-07-23
02:38:50.506:INFO:oejs.Server:clojure-agent-send-off-pool-0: Started
@52097ms Started Jetty on http://localhost:3000 Writing target
dir(s)... Elapsed time: 33.710 sec

我转到URL ...一切都检查了。 然后,我尝试更新.cljs和.html文件,但是什么也没有。...没有重新加载刷新更新,除非我自己手动重新加载浏览器

我只是不明白...这应该如何工作? 我究竟做错了什么?


我认为您没有做错任何事情...
我拿走了您发布的代码,它对我有用。
这是文件的zip:

https://drive.google.com/file/d/0BxSVa_-SDW_eaXpRSlE1aFpqdjA/view?usp=sharing

当我更改代码时,它将重新加载。
当我更改HTML时,它没有(也许需要额外的html配置吗?)

无论如何,我希望对您有所帮助,并表明您很亲近:)

我建议检查main.cljs.edn文件和未列出的源,也许那里有些区别。

让我知道它是否仍然无法正常工作。

另外,我建议查看开发人员控制台以获取错误消息!