Browse Source

Add cljs/figwheel

Thomas Dy 8 years ago
parent
commit
625ba8bbc7
5 changed files with 26 additions and 2 deletions
  1. 2 0
      .gitignore
  2. 11 1
      project.clj
  3. 8 0
      resources/public/index.html
  4. 3 0
      src/bombnet.web/core.cljs
  5. 2 1
      src/bombnet/server.clj

+ 2 - 0
.gitignore

@@ -1,3 +1,5 @@
+/resources/public/js/main.js
+/resources/public/js/out
 /target
 /classes
 /checkouts

+ 11 - 1
project.clj

@@ -4,11 +4,21 @@
   :license {:name "WTFPL"
             :url "http://www.wtfpl.net/txt/copying/"}
   :dependencies [[org.clojure/clojure "1.7.0"]
+                 [org.clojure/clojurescript "1.7.170"]
                  [org.clojure/core.async "0.2.374"]
                  [org.clojure/data.json "0.2.6"]
                  [com.stuartsierra/component "0.3.1"]
                  [compojure "1.4.0"]
-                 [http-kit "2.1.18"]]
+                 [http-kit "2.1.19"]]
+  :plugins [[lein-figwheel "0.5.0-4"]]
+  :source-paths ["src/"]
+  :cljsbuild {:builds [{:id "dev"
+                        :figwheel true
+                        :source-paths ["src/bombnet.web"]
+                        :compiler {:main "bombnet.web.core"
+                                   :asset-path "js/out"
+                                   :output-to "resources/public/js/main.js"
+                                   :output-dir "resources/public/js/out"}}]}
   :main ^:skip-aot bombnet.core
   :target-path "target/%s"
   :profiles {:uberjar {:aot :all}})

+ 8 - 0
resources/public/index.html

@@ -0,0 +1,8 @@
+<html>
+  <head>
+    <title>Bombnet</title>
+  </head>
+  <body>
+    <script type="text/javascript" src="/js/main.js"></script>
+  </body>
+</html>

+ 3 - 0
src/bombnet.web/core.cljs

@@ -0,0 +1,3 @@
+(ns bombnet.web.core)
+
+(.log js/console "Hello")

+ 2 - 1
src/bombnet/server.clj

@@ -8,7 +8,7 @@
             [bombnet.manager :refer :all]))
 
 (defroutes app
-  (GET "/" [] "Hello")
+  (GET "/" [] (ring.util.response/resource-response "index.html" {:root "public"}))
   (GET "/ws/:room" [room]
        (fn [request]
          (with-channel request channel
@@ -25,6 +25,7 @@
              (on-receive channel (fn [data]
                                    (let [parsed (json/read-str data :key-fn keyword)]
                                      (>!! in-ch [:message {:id id :message parsed}]))))))))
+  (route/resources "/")
   (route/not-found "Not Found"))
 
 (defn wrap-manager