Ответ
В JavaScript есть несколько механизмов модулей:
- CommonJS - используется в Node.js. Синтаксис
require()иmodule.exports:
// module.js
module.exports = { foo: 'bar' };
// app.js
const module = require('./module.js');
- ES Modules (ESM) - стандарт ECMAScript. Использует
import/export:
// module.js
export const foo = 'bar';
// app.js
import { foo } from './module.js';
- AMD (Asynchronous Module Definition) - для браузеров, асинхронная загрузка через
define():
define(['dependency'], function(dependency) {
return { foo: 'bar' };
});
- UMD (Universal Module Definition) - универсальный формат, совместимый с CommonJS, AMD и глобальными переменными.
ES Modules сейчас являются стандартом и поддерживаются современными браузерами и Node.js. Они обеспечивают статический анализ зависимостей и лучшее дерево встряхивания (tree-shaking).