Встречается на собеседованиях • сегодня

В чем разница между ESM и CJS

ESM (ECMAScript Modules) и CJS (CommonJS) — это системы модулей в JavaScript.

ESM — современный стандарт, поддерживается в браузерах и Node.js (с флагом "type": "module").

  • Использует import/export.
  • Загружается асинхронно.
  • Поддерживает статический анализ (топ-левел импорты).

CJS — legacy-система, используется в Node.js по умолчанию.

  • Использует require/module.exports.
  • Загружается синхронно.
  • Динамический импорт (можно вызывать require где угодно).

Пример:

js
// ESM
import { foo } from './module.js';
export const bar = 42;

// CJS
const { foo } = require('./module');
module.exports = { bar: 42 };

Ключевые отличия:

  • ESM — статический, CJS — динамический.
  • ESM работает в браузерах, CJS — нет (без сборщиков).
  • В Node.js ESM требует явного указания .mjs или "type": "module".
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы