Recs.
Updated
Specs
Pros
Pro Well documented
The RequireJS module loader is extremely well documented. So no matter whether you're a pro at JS based web development or just a newbie, you will find the documentation very helpful whenever you're stuck or just starting out. Everything is well-defined and logically placed in proper sections in a manner such that it is very easy to understand.
Pro You don't need a server to get started
One of the best advantages of RequireJS over Browserify is that you don't need a nodejs environment to get started. Just "require" your dependencies and it takes care of loading them. By contrast, Browserify requires a running NodeJS implementation so you can build your one monolithic file, then you can push the file to your static web server.
Pro Can load new modules without being recompiled
It's the one of the few modules in this category that can handle IOC-style dependency injection. The others work well for apps that have knowable dependency lists at compile time, but this is the only one that can load new modules without being recompiled.
Cons
Con On its way out
Latest stable release is 2 months old with little development occurring on Github.
Recommendations
Comments
Flagged Pros + Cons
Con AMD syntax is inferior to the CommonJS and ES6 import syntaxes
Harder to read. Easy to make a mistake. ES6' import syntax is the future.
Pro Easy to do hot reloading in development mode
Hot reloading is a very useful Developer Experience feature of a module loader system
Con Not the best solution for sharing client-side and server-side code.
RequireJS is awesome for bundling and managing dependencies in an async manner. But the server-side needs neither of this killer features. Because of this it's not as good if you're building a library that should work on both client and server (i.e. PouchDB).