All of my projects using the UMD-wrapper approach are published to npm, so it definitely does not stop you from publishing/utilizing it. Both postal.js and machina.js are examples of this. I can understand why using a UMD feels like it complicates things. I find it more annoying than complicating, personally. John-David Dalton (dev behind Lodash) had some great comments along these lines though when he was on the JSJ podcast - it's about helping developers. And having the ability to support CJS and AMD (in addition to plain globals) doesn't cost much in terms of effort or code, and the resulting win for you and people using your project is worth it, IMO.