ES Modules
Нативная система модулей JavaScript (import/export).
Зачем нужно
Стандарт модулей ES6+. Статический анализ, tree-shaking, строгий режим по умолчанию. Работает в браузерах и Node.js.
Где используется
- Фронтенд-приложения (React, Vue, Svelte)
- Современный Node.js (type: "module")
- Библиотеки и npm-пакеты
Code
// math.js — именованный экспорт
export const PI = 3.14159;
export function sum(a, b) { return a + b; }
// app.js — именованный импорт
import { PI, sum } from './math.js';
// Дефолтный экспорт
export default class User { /* ... */ }
import User from './User.js';
// Реэкспорт
export { sum } from './math.js';
export { default as User } from './User.js';
// Импорт всего модуля как namespace
import * as math from './math.js';
console.log(math.PI);
// В HTML
// <script type="module" src="app.js"></script>