Модули ES — это официальная стандартизированная модульная система для JavaScript. Но что именно это означает, какие проблемы решает и как работают модули ES?

Модульные системы полезны. Они предоставляют возможность повторного использования кода в разных приложениях и платформах. Их можно использовать в любом другом модуле через импорт и экспорт. Они модульные, их можно редактировать и удалять независимо друг от друга без сбоя всего приложения.

Модули ES — не первая попытка добавить функциональность модулей в JavaScript. CommonJS, модульная система для Node.js, существует уже много лет. Он был разработан, чтобы восполнить этот пробел. CommonJS обеспечивает именно эту модульность. Таким образом, полезные модули можно объединять в пакеты и публиковать через npm. Известными примерами таких пакетов являются, например, React, Lodash или jQuery.

До ECMAScript 6 не было системы модулей для браузеров. В ECMAScript 6 в спецификацию JS были добавлены модули ES. Формат теперь поддерживается всеми основными браузерами — Safari, Chrome, Edge и Firefox. Node уже некоторое время поддерживает модули ES.

Преимущество здесь: с модулями ES модули JS теоретически можно индексировать и кэшировать таким образом, чтобы к ним можно было получить доступ из любого места. Полезность очевидна: модульность теоретически позволяет браузеру извлекать нужные файлы только тогда, когда происходят изменения. Почему это актуально? До 90 процентов кода на веб-сайте исходит из пакетов с открытым исходным кодом (React, Lodash, jQuery), которые должны перезагружаться браузером каждый раз при изменении исходного кода.

Что стоит за этим?

Подробнее: https://frontnet.eu/es-modules-for-a-faster-javascript/