main.js is basically just cljs.core which doesn’t get fully eliminated. As I said before I have zero interest in making shadow-cljs something you would use to build pure JS projects so don’t expect it to be optimized for that.
However I do want to fully support “hybrids” and make use of some JS while the bulk of the app is written in CLJS.
You can greatly simplify your project if you move everything to the src path and include it via relative paths. No need for the custom :resolve then.
(ns main
(:require ["./app" :as app]))
Relative paths are not supported by CLJS itself and I’m still working out some details on this myself so consider this feature very alpha. I do want easier interop between CLJS<->JS though and this is one important thing left to finish. It is almost ready but the GCC is getting in the way sometimes.