The initial startup time of shadow-cljs can be quite slow which can be quite annoying. With a server-mode instances running thats generally not an issue but that won’t always be the case and the server instance has to be started too.
npm package will use the a AOT compiled artifact by default when running in standalone mode.
$ time shadow-cljs clj-eval 1 shadow-cljs - config: ~/test-dummy/shadow-cljs.edn cli version: 2.4.26 node: v9.4.0 shadow-cljs - starting ... 1 real 0m8.788s user 0m25.813s sys 0m2.141s
$ time shadow-cljs clj-eval 1 shadow-cljs - config: ~/test-dummy/shadow-cljs.edn cli version: 2.4.28 node: v9.4.0 shadow-cljs - starting ... 1 real 0m3.556s user 0m8.688s sys 0m1.234s
While 3.5sec is still too slow its quite an improvement over 8.7sec.
Please try it and report if you run into any issues. I experimented with AOT in the past and it had lots of issues. The approach used this time however is much cleaner so I hope its more reliable too. You can toggle set
:aot false in the
shadow-cljs.edn config to use the normal artifact instead.
PS: I absolutely do not recommend using the AOT version when running embedded in
deps.edn but you can try it by specifying the
:classifier "aot" on the dependency (eg.
[thheller/shadow-cljs "2.4.28" :classifier "aot"]).