Вы уже работали с модулями через замыкания. В современном JavaScript появились более удобные модули, позволяющие размещать каждый модуль в отдельном файле, а затем при необходимости подключать к другим файлам, экспортируя только нужные переменные и функции.
Изначально такие модули не были закреплены в стандарте JavaScript и просто разрабатывались сообществом. Соответственно, появилось очень много различных модульных систем: AMD, CommonJS, UMD и другие.
Затем в стандарте JavaScript появились свои модули. Их называют ES модули. Из-за этого разработанные сообществом модули стремительно устарели и ими пользоваться не стоит.
Обратить внимание стоит лишь на модули CommonJS, так как на них изначально работал NodeJS, да и сейчас он работает на них по умолчанию в целях совместимости.
Кроме того, часто в инструкциях по подключению различных библиотек вы встретите описание именно CommonJS варианта, а не ES. Поэтому вы должны представлять себе, как работают оба варианта, и как переделать код CommonJS на ES.
Есть еще нюанс. Хотя модули теперь закреплены в стандарте JavaScript, просто так они не будут работать в браузере (пока). Для этого нужно использовать один из популярных инструментов сборки.
Мы будем пользоваться инструментом Webpack. Пока мы разберем только его базовые возможности, чтобы с его помощью изучать и практиковать работу с модулями. Далее в учебнике будет отдельный раздел, посвященный продвинутой работе с этим инструментом.