Last active
November 15, 2018 06:14
-
-
Save ilshad/d3003d03a5e25be963c065a0f9bea77c to your computer and use it in GitHub Desktop.
Quickstart with Clojure CLI + Cider + Figwheel + Pedestal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{:deps {org.clojure/clojure {:mvn/version "1.9.0"} | |
org.clojure/clojurescript {:mvn/version "1.10.339"} | |
io.pedestal/pedestal.service {:mvn/version "0.5.4"} | |
io.pedestal/pedestal.jetty {:mvn/version "0.5.4"} | |
io.pedestal/pedestal.service-tools {:mvn/version "0.5.4"} | |
com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"} | |
com.bhauman/figwheel-main {:mvn/version "0.1.9"} | |
hiccup {:mvn/version "1.0.5"}} | |
:paths ["src" "target" "resources"] | |
:aliases | |
{:dev | |
{:extra-paths ["test" "dev"] | |
:extra-deps {nrepl/nrepl {:mvn/version "0.4.4"} | |
cider/cider-nrepl {:mvn/version "0.19.0-SNAPSHOT"} | |
cider/piggieback {:mvn/version "0.3.9"}} | |
:main-opts ["-m" "nrepl.cmdline" | |
"--port" 7777 | |
"--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"]}}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns dev | |
(:require [figwheel.main.api :as figwheel] | |
[io.pedestal.http :as http] | |
[io.pedestal.http.route.definition.table :as table] | |
[ring.util.response :as response] | |
[hiccup.page :as h])) | |
(defn run-figwheel [] | |
(figwheel/start | |
{:id "dev" | |
:options {:main 'myapp.core | |
:install-deps true | |
:npm-deps {:react "15.6.1" | |
:react-dom "15.6.1"}} | |
:config {:css-dirs ["resources/public/css"] | |
:log-file "logs/figwheel.log" | |
:watch-dirs ["src"] | |
:open-url false}})) | |
(def stop-figwheel figwheel/stop-all) | |
(defn cljs-repl [] | |
(figwheel/cljs-repl "dev")) | |
(defn page [request] | |
(response/response | |
(h/html5 | |
[:head | |
[:title "My App"] | |
[:meta {:charset "utf-8"}] | |
[:meta {:name "viewport" | |
:content "width=device-width, initial-scale=1, user-scalable=no"}] | |
[:link {:rel "stylesheet" | |
:type "text/css" | |
:href "https://use.fontawesome.com/releases/v5.4.1/css/all.css" | |
:integrity "sha384-5sAR7xN1Nv6T6+dT2mhtzEpVJvfS3NScPQTrOxhwjIuvcA67KV2R5Jz6kr4abQsz" | |
:crossorigin "anonymous"}] | |
[:link {:rel "stylesheet" | |
:type "text/css" | |
:href "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" | |
:integrity "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" | |
:crossorigin "anonymous"}] | |
(h/include-css "/css/style.css")] | |
[:body | |
[:div {:id "app"}] | |
(h/include-js "/cljs-out/dev-main.js")]))) | |
(def routes | |
(table/table-routes | |
[["/" :get [http/html-body page] :route-name ::home]])) | |
(defonce runnable-service (atom {})) | |
(defn start [] | |
(->> {::http/routes #(deref #'routes) | |
::http/router :linear-search | |
::http/resource-path "/public" | |
::http/type :jetty | |
::http/port 8888 | |
::http/join? false | |
::http/secure-headers {:content-security-policy-settings | |
{:object-src "none"}} | |
:env :dev} | |
http/default-interceptors | |
http/dev-interceptors | |
http/create-server | |
http/start | |
(reset! runnable-service))) | |
(defn stop [] | |
(http/stop @runnable-service)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment