# Модульная система

# Стандарты

# 1. Паттерн "Модуль" 2003 год

  • Немедленно вызываемая функция, образующая приватную область видимости

# 2. CommonJS (CJS) 2009 год

# 3. Asynchronous Module Definition (AMD) 2009 год

  • define -> require
  • Реализация: RequireJS (opens new window)
  • Предназначен для асинхронной загрузки. Преимущественно используется на стороне клиента

# 4. Universal Module Definition (UMD) 2011 год

  • Объединение AMD и CommonJS
  • Суть подхода: проверить существование функции define и если она есть определить модуль в формате AMD, а если нет, в формате CommonJS

# 5. Модули ES6 2015 год

  • export -> import