CommonJS

Система модулей Node.js через require/module.exports.

Зачем нужно

Исторический стандарт модулей в Node.js. Синхронная загрузка, динамические require. Всё ещё используется в огромном количестве пакетов.

Где используется

  • Серверный Node.js (legacy и текущие проекты)
  • npm-пакеты с обратной совместимостью
  • Конфиги (webpack.config.js, jest.config.js)

Code

// math.js
const PI = 3.14159;
function sum(a, b) { return a + b; }
module.exports = { PI, sum };

// app.js
const { PI, sum } = require('./math');
console.log(sum(2, 3));

// Экспорт одного значения
module.exports = class User { /* ... */ };

// Условный require (динамический)
if (needFeature) {
  const feature = require('./feature');
}

// __dirname, __filename доступны
console.log(__dirname);  // путь к папке модуля
console.log(__filename); // путь к файлу модуля

Связанные темы

Ресурсы