Browserify includes transforms such as deAMDify, that allow you to use modules written in the AMD module format, and debowerify, that allows you to use modules intended to be managed by Bower package manager.
Using browserify opens you up to npm, that has over 80k modules of which a great amount work both client-side and server-side. And the list is growing rapidly.
To require a file, just use the require() function.
var foo = require('./foo.js');
These files may have dependencies of their own. Browserify will build a dependency graph and bundle it into a single file that you just have to put in a script tag.
<html>
<body>
<script src="bundle.js"></script>
</body>
</html>
Browserify does nothing client-side. It's only a server-side builder. If you want to load files from other domains, look at RequireJS. If you want to break your code up into multiple modules, look at RequireJS or Webpack.
While it's not too hard to create npm package for an existing library, it means maintaining it when the library updates. While most libraries are now on npm, many client side specific libraries are not.
It's possible to require local files instead, at the expense of not having npm managed version control.
Using StelaJS opens you up to npm, that has over 80k modules of which a great amount work both client-side and server-side. And the list is growing rapidly.
Sometimes changing the order of the require statements in a JavaScript file loaded with stealjs may cause unexpected problems or even breaking the code altogether.
Rollup can be expanded just like webpack and browserify through the use of plugins. Plugins can do things such as transpilation (e.g. with Babel), import data from non JS places (like JSON files), etc.
Qoopido.demand offers loading of legacy scripts as if they were modules through probe functions. These probe functions are similiar to Require.js shim, but where shim allows only string parameters, Qoopido.demand's probes are JavaScript functions that can check whatever you want.
Since SystemJS does not try to shim node built-ins and methods from modules, you cannot load any npm module in the browser and expect it to work with SystemJS.
Plugins and loaders are easy to write and allow you to control each step of the build, from loading and compiling CoffeeScript, LESS and JADE files to smart post processing and asset manifest building.
Webpack supports AMD and CommonJS module styles. It performs clever static analysis on the AST of your code. It even has an evaluation engine to evaluate simple expressions. This allows you to support most existing libraries.
Using Webpack opens you up to npm, that has over 80k modules of which a great amount work both client-side and server-side. And the list is growing rapidly.