Popular libraries like jQuery seem to just use old-school file concatenation for building itself and dynamically detect whether it should write to an
exports or the global context. I'm currently doing the same thing, but the main downside is that if I (unlike jQuery) depend on a few libraries, it's nice to not have to ask users to manually pre-include the transitive set. (Though I currently just have two dependencies.) And of course global namespace pollution.
Or perhaps it's cleanest to generate multiple versions of my library, for each context?
I'm also wondering about packaging and publishing. There are several systems, but I believe the major one is bower, which is easy to deal with since all it does is fetch. However, I'm wondering if I should also be targeting other package systems like component (which requires CommonJS).
Are there other relevant aspects I should be aware of? Are there any good example projects to follow for all of this?