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 Weasel REPL server, and drops you into a
ClojureScript REPL. Evaluating expressions here will only work once you've
loaded the page, so the browser can connect to Weasel.
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/haxlife/core.cljs, and change
dom/h2. As soon as you save the file, your browser is updated.
In the REPL, type
(ns haxlife.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 weasel repl, 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). Note that running a weasel server is not required to evaluate code in Lighttable.
Start a repl in the context of your project with
Switch to repl-buffer with
C-c C-z and start web and figwheel servers with
(run), and weasel server with
http://localhost:3449 on an external browser, which
connects to weasel, and start evaluating cljs inside Cider.
To run the Clojurescript tests, do
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.10.0-SNAPSHOT (ee1a85d5).