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.