Open a terminal and type
lein repl to start a Clojure REPL
In the REPL, type
The call to
(run) starts the Figwheel server at port 3449, which takes care of
live reloading ClojureScript code and CSS. Figwheel's server will also act as
your app server, so requests are correctly forwarded to the http-handler you
(browser-repl) starts the Figwheel ClojureScript REPL. Evaluating
expressions here will only work once you've loaded the page, so the browser can
connect to Figwheel.
When you see the line
Successfully compiled "resources/public/app.js" in 21.36 seconds., you're ready to go. Browse to
http://localhost:3449 and enjoy.
Attention: It is not needed to run
lein figwheel separately. Instead we
launch Figwheel directly from the REPL
Trying it out
If all is well you now have a browser window saying 'Hello Chestnut',
and a REPL prompt that looks like
resources/public/css/style.css and change some styling of the
H1 element. Notice how it's updated instantly in the browser.
src/cljs/concordia/core.cljs, and change
dom/h2. As soon as you save the file, your browser is updated.
In the REPL, type
(ns concordia.core) (swap! app-state assoc :text "Interactivity FTW")
Notice again how the browser updates.
Lighttable provides a tighter integration for live coding with an inline browser-tab. Rather than evaluating cljs on the command line with the Figwheel REPL, you can evaluate code and preview pages inside Lighttable.
Steps: After running
(run), open a browser tab in Lighttable. Open a cljs file
from within a project, go to the end of an s-expression and hit Cmd-ENT.
Lighttable will ask you which client to connect. Click 'Connect a client' and
select 'Browser'. Browse to http://localhost:3449
View LT's console to see a Chrome js console.
Hereafter, you can save a file and see changes or evaluate cljs code (without saving a file).
CIDER is able to start both a Clojure and a ClojureScript REPL simultaneously,
so you can interact both with the browser, and with the server. The command to
do this is
Put this in your Emacs configuration (
(setq cider-cljs-lein-repl "(do (user/run) (user/browser-repl))")
M-x cider-jack-in-clojurescript (shortcut:
C-c M-J, that's a capital
Meta-Shift-j), point your browser at
you're good to go.
To run the Clojure tests, use
lein doo phantom
Deploying to Heroku
git init git add -A git commit heroku create git push heroku master:master heroku open
Running with Foreman
Heroku uses Foreman to run your
app, which uses the
Procfile in your repository to figure out which
server command to run. Heroku also compiles and runs your code with a
Leiningen "production" profile, instead of "dev". To locally simulate
what Heroku does you can do:
lein with-profile -dev,+production uberjar && foreman start
Now your app is running at http://localhost:5000 in production mode.
Copyright © 2016 FIXME
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.
Created with Chestnut 0.15.1 (f25b545d).