This is the module format you don't know you need until you need it. Write your module once and have it work in a CJS/NodeJs, AMD, YUI (v3+), or Browser Global environment.
- You are migrating from namespaced (err, globals) code to either AMD or CJS modules or both.
- You can't yet factor out browser globals but also need to test your code via NodeJS (e.g. Mocha).