Ah yes, I remember that episode of JSJ. UMD makes perfect sense for something like Lodash, where ease of use and portability is really important, and (I don't think) external dependencies are involved*.
For most modules I've worked on, having npm manage dependencies, and being able to easily consume these is a huge advantage. As far as I can tell this approach doesn't work with UMD (again, please correct me if I'm wrong).
So I just don't see it as an approach I would want to use unless:
- Supporting all environments is critical
- The module doesn't have any external dependencies
I definitely lean in the direction – probably ignorantly – of just use CJS.
* I've only skimmed the Lodash source, I should take a closer look when I get the chance.