The Further Adventures of Starting a new ClojureScript project in 2022

Yep. I’ve seen shadow.js too. But as that seems to be all about node and npm etc. (which is yet another whole package management ecosystem I don’t want to get involved with) I’ve been trying to avoid that.

It turns out, while it’s largely advertised as such, you can technically leverage all the shadowcljs stuff through lein or as a stand alone clojure lib/uberjar. Add shadow-cljs to existing Leiningen project - #5 by DrLjotsson

It is meant more as a cohesive replacement for cljsjs and to fill in some gaps and limitations the original cljs compiler had IIRC. I may be migrating to it in the future since I am using more js libs (many of which don’t have cljsjs presence) and I am more willing to entertain having npm around to get access to the ecosystem (aside from just including the js libs manually and wrapping them, which messes with advanced compilation). I think it’s possible to leverage shadow for its non-npm features, but you are cutting out a lot of the benefit there.

1 Like