AMD: The Asynchronous Module Definition. The primary building block for referencing and defining modular JS code.

require: An API for the require() function that allows dynamic, asynchronous loading of modules, and for resolving some module ID-based strings to file paths.

Repo

The Asynchronous Module Definition (AMD) API specifies a mechanism for defining modules such that the module and its dependencies can be asynchronously loaded. This is particularly well suited for the browser environment where synchronous loading of modules incurs performance, usability, debugging, and cross-domain access problems.