For my purposes, that shouldn’t affect analysis, I just need the analysis not to fail.
The external deps are hardly ever used in e.g. calculating var metadata.
I think there's a terminology gap. Maybe shadow technically is a build tool that uses the analysis differently? Maybe :default isn't syntax, but something else? I'm not sure.
You can do things in shadow requires which aren't possible with a normal clojurescript main build. If you use those features in a library, then your library users must use shadow too.
so strings are needed because npm module names are not simple symbols, they have weird characters in them. This is something I am very curious how this approach: https://clojurescript.org/guides/webpack solves.