This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-11-18
Channels
- # beginners (84)
- # boot (21)
- # cider (12)
- # cljs-dev (13)
- # cljsrn (3)
- # clojure (169)
- # clojure-dusseldorf (2)
- # clojure-gamedev (6)
- # clojure-germany (1)
- # clojure-russia (15)
- # clojure-serbia (4)
- # clojure-spec (16)
- # clojure-uk (4)
- # clojurescript (51)
- # core-async (1)
- # datomic (23)
- # emacs (16)
- # figwheel (1)
- # fulcro (60)
- # hoplon (8)
- # lein-figwheel (3)
- # leiningen (1)
- # luminus (4)
- # lumo (43)
- # off-topic (4)
- # re-frame (17)
- # rum (37)
- # shadow-cljs (21)
- # test-check (13)
- # vim (14)
Because the weird things you can do via Boot command line amuse me http://seancorfield.github.io/blog/2017/11/17/boot-localrepo/
@dominicm I wonder about some of the aspects in that post as well. E.g. what you just said, the watch
task should take care of incremental compilation.
> This is a project that includes three different ClojureScript builds: the web frontend, a web worker that evaluates JS and CLJS, and a renderer that runs on Node to generate the initial payload offline. For each of these we need dev, test, and production builds. At first glance, I would make three boot tasks out of this and would start them in each their own JVM process (or maybe you can do with only one, but I would not compose the tasks).
> Further complications arise because of a large number of foreign js dependencies. Not a boot problem.
> We decided we wanted figwheel Wondering what is missing for them in the boot ecosystem, but this is not a boot specific problem, more an ecosystem problem: figwheel is mainly written with lein in mind.
> boot-cljs does a lot of “magic” under the covers that ended up getting in our way. Again wondering what this is.
> you can’t have a REPL and a watcher task in the same process He may be right - we start nREPL from our app on startup.
Repl server can be started together with watch
, but no client
(comp (watch) (repl :server true) (cljs) ...)
REPL client is blocking so no futher tasks would run
@juhoteperi What’s the difference with only (repl)
?
By default repl
starts both server and the client
Once you have repl running, you can start client on other terminal boot repl -c
, it will automatically use port in .nrepl-port
file, which is written by server task
repl task help does document this quite well
We start the server in the app anyway, because we like to have it in our staging/prod environment
I only enable app nrepl on test/prod environments, as when using Component/Integrant, restarting the system would also restart nrepl which is inconvenient during dev
@juhoteperi You could also use https://github.com/weavejester/suspendable to make the nREPL component suspendable