Sobes.tech
Назад к вопросам
Middle
254

В чем разница между модулями ES и CommonJS?

Ответ от нейросети

sobes.tech AI

ES-модули (ESM) и CommonJS — это два стандарта модульной системы в JavaScript.

Основные отличия:

  • Синтаксис:

    • ES-модули используют import и export.
    • CommonJS использует require() и module.exports.
  • Выполнение:

    • ES-модули загружаются статически, что позволяет инструментам делать оптимизации (tree shaking).
    • CommonJS загружается динамически во время выполнения.
  • Асинхронность:

    • ES-модули поддерживают асинхронную загрузку.
    • CommonJS — синхронный.
  • Поддержка:

    • ES-модули — стандарт в современных браузерах и Node.js.
    • CommonJS — традиционный стандарт для Node.js.

Пример ES-модуля:

// math.js
export function sum(a, b) {
  return a + b;
}

// main.js
import { sum } from './math.js';
console.log(sum(2, 3));

Пример CommonJS:

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

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