RequireJS is very expensive and it's NOT CommonJS. It claims that CommonJS is not-optimal for browser and offers you to put your source code inside of an awkward container for optimizing. It's not smart.<p>Let me introduce you OneJS: <a href="http://github.com/azer/onejs" rel="nofollow">http://github.com/azer/onejs</a><p>It simply converts any CommonJS package into a single, stand-alone JavaScript file. It means, you can structure your client-side project just like a NodeJS project and you can convert your NodeJS project to a single file just like a client-side project.<p>Unlike Browserify, OneJS is unobtrusive [1], provides an accurate implementation of CommonJS specs [2] and the output it produces is suitable for splitting and having async dependencies.<p>[1] A chess website built with OneJS: <a href="http://multiplayerchess.com/mpc.js" rel="nofollow">http://multiplayerchess.com/mpc.js</a><p>[2] ExpressJS built with OneJS, with all dependencies: <a href="https://gist.github.com/2415048" rel="nofollow">https://gist.github.com/2415048</a>