This page is not available in every language. Missing translations are disabled in the language selector.

Quick reference

Universal Module Definition (UMD) Cheatsheet

Quick reference guide for UMD patterns in JavaScript, creating modules compatible with AMD (RequireJS), CommonJS (Node.js), and browser globals.

· Published

The Universal Module Definition (UMD) pattern creates JavaScript libraries that load seamlessly across CommonJS (Node.js), AMD (RequireJS), and browser <script> environments.

UMD with External Dependencies

;(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module.
    define(['b'], factory);
  } else if (typeof module === 'object' && module.exports) {
    // Node.js / CommonJS
    module.exports = factory(require('b'));
  } else {
    // Browser globals (root is window)
    root.myModule = factory(root.b);
  }
}(typeof self !== 'undefined' ? self : this, function (b) {
  // Module implementation
  function myModule() {}
  myModule.prototype.doSomething = function () {};

  return myModule;
}));

Standalone UMD Without Dependencies

;(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    define([], factory);
  } else if (typeof module === 'object' && module.exports) {
    module.exports = factory();
  } else {
    root.myUtility = factory();
  }
}(typeof self !== 'undefined' ? self : this, function () {
  return {
    greet: function (name) {
      return 'Hello, ' + name + '!';
    }
  };
}));

References

Related topics