Назад к вопросам
Middle
124
questionbank
Какие существуют системы модульности в Node.js?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
CommonJS и ECMAScript Modules (ESM).
CommonJS:
- Использует
require()для импорта модулей иmodule.exportsилиexportsдля экспорта. - Синхронно загружает модули.
- Является стандартным для версий Node.js до 12.0.0.
// CommonJS импорт
const fs = require('fs');
// CommonJS экспорт
module.exports = {
readFile: fs.readFileSync
};
ECMAScript Modules (ESM):
- Использует операторы
importиexport. - Асинхронно загружает модули.
- Является стандартом для более новых версий Node.js (начиная с 12.0.0 с флагом
--experimental-modules, полностью с 14.0.0 по умолчанию с расширением.mjsилиtype: "module"вpackage.json).
// ESM импорт
import fs from 'fs';
// ESM экспорт
export const readFile = fs.readFileSync;
Сравнение:
| Характеристика | CommonJS | ESM |
|---|---|---|
| Импорт | require() |
import |
| Экспорт | module.exports, exports |
export |
| Загрузка | Синхронная | Асинхронная |
| Синтаксис | Динамический (можно внутри условий) | Статический (только на верхнем уровне) |