Today, large applications are being built with JavaScript, running in the browser as well as on servers. Although the language doesn't currently provide built-in support for modules, developers use multiple mechanisms to modularize their JavaScript code. In this talk, I will discuss several ways to create modules in JavaScript without polluting the global scope. In the process, I'll also clarify the relation between CommonJS modules, AMD, Node.js and RequireJS. In the end, I will also talk about the upcoming module functionality that will be a part of the next version of JavaScript (ES 6/ES.next).