[boot]: plugging in cljs

This commit is contained in:
anatoly 2015-12-21 14:41:06 -05:00
parent a75b087b8f
commit c7bb4d6a26
4 changed files with 44 additions and 13 deletions

View file

@ -1,30 +1,46 @@
(set-env! (set-env!
:source-paths #{"src"} :source-paths #{"src"}
:dependencies '[;; dev / examples / test :dependencies '[;; mount brings _no dependencies_, everything here is for
;; mount dev, examples apps and tests
[org.clojure/clojure "1.7.0" :scope "provided"] [org.clojure/clojure "1.7.0" :scope "provided"]
[org.clojure/clojurescript "1.7.170" :scope "provided"] [org.clojure/clojurescript "1.7.189" :scope "provided" :classifier "aot"]
[datascript "0.13.3" :scope "provided"] [datascript "0.13.3" :scope "provided"]
[compojure "1.4.0" :scope "provided"] [compojure "1.4.0" :scope "provided"]
[ring/ring-jetty-adapter "1.1.0" :scope "provided"] [ring/ring-jetty-adapter "1.1.0" :scope "provided"]
[cheshire "5.5.0" :scope "provided"] [cheshire "5.5.0" :scope "provided"]
[hiccups "0.3.0" :scope "provided"] [hiccups "0.3.0" :scope "provided" :exclusions [org.clojure/clojurescript]]
[com.andrewmcveigh/cljs-time "0.3.14" :scope "provided"] [com.andrewmcveigh/cljs-time "0.3.14" :scope "provided"]
[ch.qos.logback/logback-classic "1.1.3" :scope "provided"] [ch.qos.logback/logback-classic "1.1.3" :scope "provided"]
[org.clojure/tools.logging "0.3.1" :scope "provided"] [org.clojure/tools.logging "0.3.1" :scope "provided"]
[robert/hooke "1.3.0" :scope "provided"] [robert/hooke "1.3.0" :scope "provided"]
[org.clojure/tools.namespace "0.2.11" :scope "provided"] [org.clojure/tools.namespace "0.2.11" :scope "provided"]
[org.clojure/tools.nrepl "0.2.11" :scope "provided"] [org.clojure/tools.nrepl "0.2.12" :scope "provided"]
[com.datomic/datomic-free "0.9.5327" :scope "provided" :exclusions [joda-time]] [com.datomic/datomic-free "0.9.5327" :scope "provided" :exclusions [joda-time]]
;; boot ;; boot clj
[boot/core "2.5.1" :scope "provided"] [boot/core "2.5.1" :scope "provided"]
[adzerk/bootlaces "0.1.13" :scope "test"] [adzerk/bootlaces "0.1.13" :scope "test"]
[adzerk/boot-logservice "1.0.1" :scope "test"] [adzerk/boot-logservice "1.0.1" :scope "test"]
[adzerk/boot-test "1.0.6" :scope "test"]]) [adzerk/boot-test "1.0.6" :scope "test"]
;; boot cljs
[adzerk/boot-cljs "1.7.170-3" :scope "test"]
[adzerk/boot-cljs-repl "0.3.0" :scope "test"]
[pandeiro/boot-http "0.7.1-SNAPSHOT" :scope "test"]
[com.cemerick/piggieback "0.2.1" :scope "test" :exclusions [org.clojure/clojurescript]]
[weasel "0.7.0" :scope "test" :exclusions [org.clojure/clojurescript]]
[adzerk/boot-reload "0.4.2" :scope "test"]
[crisptrutski/boot-cljs-test "0.2.1-SNAPSHOT" :scope "test"]])
(require '[adzerk.bootlaces :refer :all] (require '[adzerk.bootlaces :refer :all]
'[adzerk.boot-test :as bt] '[adzerk.boot-test :as bt]
'[adzerk.boot-logservice :as log-service] '[adzerk.boot-logservice :as log-service]
'[adzerk.boot-cljs :refer [cljs]]
'[adzerk.boot-cljs-repl :refer [cljs-repl start-repl]]
'[adzerk.boot-reload :refer [reload]]
'[pandeiro.boot-http :refer :all]
'[crisptrutski.boot-cljs-test :refer [test-cljs]]
'[clojure.tools.logging :as log] '[clojure.tools.logging :as log]
'[clojure.tools.namespace.repl :refer [set-refresh-dirs]]) '[clojure.tools.namespace.repl :refer [set-refresh-dirs]])
@ -32,7 +48,7 @@
(bootlaces! +version+) (bootlaces! +version+)
(def log-config (def log4b
[:configuration [:configuration
[:appender {:name "STDOUT" :class "ch.qos.logback.core.ConsoleAppender"} [:appender {:name "STDOUT" :class "ch.qos.logback.core.ConsoleAppender"}
[:encoder [:pattern "%-5level %logger{36} - %msg%n"]]] [:encoder [:pattern "%-5level %logger{36} - %msg%n"]]]
@ -40,11 +56,11 @@
[:appender-ref {:ref "STDOUT"}]]]) [:appender-ref {:ref "STDOUT"}]]])
(deftask dev [] (deftask dev []
(set-env! :source-paths #(conj % "dev/clj" "dev/cljs"))
(set-env! :source-paths #(conj % "dev/clj")) (set-env! :resource-paths #{"dev/resources"})
(alter-var-root #'log/*logger-factory* (alter-var-root #'log/*logger-factory*
(constantly (log-service/make-factory log-config))) (constantly (log-service/make-factory log4b)))
(apply set-refresh-dirs (get-env :directories)) (apply set-refresh-dirs (get-env :directories))
(load-data-readers!) (load-data-readers!)
@ -55,6 +71,18 @@
(set-env! :source-paths #(conj % "test/core" "test/clj")) ;; (!) :source-paths must not overlap. (set-env! :source-paths #(conj % "test/core" "test/clj")) ;; (!) :source-paths must not overlap.
(bt/test)) (bt/test))
(deftask cljs-example
"mount cljs example"
[]
(set-env! :source-paths #(conj % "dev/clj" "dev/cljs"))
(set-env! :resource-paths #{"dev/resources"})
(comp
(wait)
(serve :dir "dev/resources/public/")
(cljs-repl)
(cljs :optimizations :advanced :ids #{"mount"})))
(task-options! (task-options!
push #(-> (into {} %) (assoc :ensure-branch nil)) push #(-> (into {} %) (assoc :ensure-branch nil))
pom {:project 'mount pom {:project 'mount

View file

@ -1,6 +1,7 @@
(ns dev (ns dev
(:require [clojure.pprint :refer [pprint]] (:require [clojure.pprint :refer [pprint]]
[clojure.tools.namespace.repl :as tn] [clojure.tools.namespace.repl :as tn]
[boot.core :refer [load-data-readers!]]
[mount.core :as mount] [mount.core :as mount]
[app.utils.logging :refer [with-logging-status]] [app.utils.logging :refer [with-logging-status]]
[app.www] [app.www]
@ -38,3 +39,4 @@
(tn/refresh :after 'dev/go)) (tn/refresh :after 'dev/go))
(mount/in-clj-mode) (mount/in-clj-mode)
(load-data-readers!)

View file

@ -0,0 +1 @@
{:require [app.example]}

View file

@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<body> <body>
<script src="js/compiled/mount.js" type="text/javascript"></script> <script src="../mount.js" type="text/javascript"></script>
</body> </body>
</html> </html>