JavaScript

В чем реальный профит js модулей?

В чем реальный профит js модулей? стоит ли париться с их реализацией в проекте?
В том, что код будет автоматически собран в (например) один файл/бандл. Тебе не надо париться с тем, чтобы втыкать на страницу нужные js-файлы в нужном порядке. Благодаря модулям ты можешь импортировать лишь те функции из библиотек, которые ты реально используешь, а не всю библиотеку целиком. Также конечный бандл эффективно минимизируется. В конечном итоге повышается скорость загрузки страницы и ты упрощаешь себе работу.
Сергей Бурмистров
Сергей Бурмистров
52 806
Лучший ответ
Александр Грановский ну меня в них например напрягает то что я не могу понять когда страница загружена и готова к работе, например загрузил сайт, дальше по клику у меня идет погрузка еще js файлов, как мне понять что они подгружены и объекты в них готовы к использвоанию? есть динамическая функция импорт окей но она возвращает проимс и если я подгружаю несколько файлов? как обработать несколько промсов одновременно?
В модульности, как ни странно.
Париться с реализацией - не нужно вовсе, так как стандартные модули через разметку совсем невкусные, и пипл использует бандлеры (в основном webpack/rollup/parcel) которые работают с другим стандартным способом: через import/export. Или, через CommonJS модули.
Amantur Abdykadyrov
Amantur Abdykadyrov
74 298
Александр Грановский да вот я и думаю сижу я реализовал свое подключение файлов динамическое, с четким соблюдением порядка выполнения и параллельной загрузкой при этом, и у меня поулчаеться очень красивый и элегантный кодик вот например:
window.loader.import("core.log.logCollector");
window.loader.import("core.singleton");

let adminApplication = function(){

window.loader.ready(function(){

window.singleton = new singleton();
let log = window.singleton.getInstance("logCollector");
log.info("test OK");

});
}
и вот вычитал про модули нативные, и чет атм трешь какой то
Нативные модули
1. движки Js используют отложенную компиляцию
2. модули исполняются в отдельной области видимости и только один раз.
сочетание этих двух факторов позволяет браузеру пользовать принцип компилируется только то что будет использоваться

К примеру ты подключаешь к своей странице популярные библиотеки как модули аБУляр (тыша методов внутри) и БУквери (пятсот методов внутри) но реально используешь на странице только 120 методов из этих библиотек. И браузер скомпилирует только 120.
После того как проведет инициализацию модуля сработают правило на отдельную область видимости и никто не сможет позднее получить ссылку на объекты в модуле. и браузер может забить на компиляцию 1380 методов и смело выкинуть их из памяти.

Скриптовые реализации модулей это просто способ отделить теплое от мягкого.

Но в реальности спецификация модулей фича новая активно обсуждается. У массовиков затейников в WebAssembly есть идеи про разделяемые модули в cors окружении но в браузерах стоит ожидать не раньше лета.
ПГ
Петр Голубев
12 592
Юрий Максимов Видать автор этого не понимает. Он думает, что тянет весь файл.
Напиши свою библиотеку, и тяни только нужные функции.
Александр Грановский а какая разница файл весьвсеравно будет скачан