Middle
145
questionbank

В чем разница между системами модульности?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Существуют две основные системы модульности в JavaScript: CommonJS (CJS) и ES Модули (ESM).

FeatureCommonJS (CJS)ES Modules (ESM)
Синтаксис импортаrequire()import
Синтаксис экспортаmodule.exports или exportsexport
ЗагрузкаСинхроннаяАсинхронная
Поддержка в Node.jsИсконная, без флаговТребует .mjs расширения или "type": "module" в package.json (с Node.js 14+)
Динамический импортНетimport()

CJS использовался в Node.js по умолчанию до появления ESM. ESM является стандартом для JavaScript и поддерживается в современных браузерах и версиях Node.js. ESM обладает преимуществами в виде статического анализа, возможности tree-shaking (удаление неиспользуемого кода) и асинхронной загрузки модулей.

Пример CJS:

javascript

Пример ESM:

javascript