// math.js
export function sum(a, b) { return a + b; }
export default class Calculator {}
// app.js
import Calculator, { sum } from "./math.js";
const { Chart } = await import("./chart.js"); // загрузить по требованию
Что важно знать
- ES-модули (
import/export) — стандарт; CommonJS (require) — наследие Node.js, встречается в старых пакетах. - У модуля своя область видимости и строгий режим; код модуля выполняется один раз, при первом импорте.
- Импорты статичны — сборщик видит граф зависимостей и выкидывает неиспользуемое (tree shaking).
- Динамический
import()возвращает промис и создаёт отдельный файл сборки — основа разделения кода по маршрутам. - В браузере:
<script type="module">— отложенное выполнение как уdefer. - Именованные экспорты удобнее для рефакторинга и автодополнения, чем
default.