Skip to content

Instantly share code, notes, and snippets.

@zengxinhui
Last active April 16, 2020 22:47
Show Gist options
  • Save zengxinhui/ea6084d065573f384f33e4b66f347259 to your computer and use it in GitHub Desktop.
Save zengxinhui/ea6084d065573f384f33e4b66f347259 to your computer and use it in GitHub Desktop.
Hot reload clojure code in figwheel-main
;; Based on https://figwheel.org/docs/your_own_server.html. Just add reload middleware and wrap (run-jetty) in a (future)
;; And run it:
;; clojure -i @web/core.clj -m figwheel.main -b dev -r
(ns web.core
(:require [ring.adapter.jetty :refer [run-jetty]]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]
[ring.middleware.reload :refer [wrap-reload]]
[ring.util.response :refer [resource-response content-type]]))
(defn handler [req]
(or
(when (= "/" (:uri req))
(some-> (resource-response "index.html" {:root "public"})
(content-type "text/html; charset=utf-8")))
{:status 404
:headers {"Content-Type" "text/html"}
:body "Not found!"}))
(def app
(-> handler
wrap-reload
(wrap-defaults site-defaults)))
(future
(run-jetty
app
{:port 4000}))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment