Как правильно реализовывать разделение кода при работе с webpack?
Делаю свой первый проект на webpack, интернет магазин на битрикс. После общения с бэком возникла проблема. Бэку нужен код, разбитый на модули, чтобы подргужать их только по мере необходимости. Но ведь webpack собирает код в бандлы, после чего работать с ним невозможно. Как это правильно делать в связке с webpack? Чья задача отпимизировать код таким образом?
Почитал о динамической загрузке модулей у вебпака. Как он это реализует? Какая поддержка у браузеров?
Как я это понял: Нужно создавать точку входа для каждой страницы, и когда и какой грузить js код это задача фронтенда?
Объясните, как правильно)
Alex, Да, конечно. Мне не понятно какой подход использовать? Ситуация следующая:
Отдал бэку проект с готовым bundle.js , но он говорит что ему нужно мой js код снова разбить на модули, чтобы он контролировал когда и какой js код загружать. Но ведь код уже собран из модулей, получается, что когда и какой код загружать это моя задача как фронтендера, врено?
И какая поддержка у динамических модулей? Как вебпак впринципе обращается к серверу чтобы что-то загрузить?
Все, можете спать спокойно. Единый JS-файл для всех страниц -- это нормально. Желание подгружать куски JS-кода динамически -- это личный "бзик" отдельно взятого разработчика.
Если только Вы не писали код для разных глобальных задач и слили все в один файл, что маловероятно.
skuvaWeb, ну у вас бэкендер значит чудак какой-то. ему же проще - тупо прописать везде <script src="/bundle.js"></script> и не париться.
И какая поддержка у динамических модулей? Как вебпак впринципе обращается к серверу чтобы что-то загрузить?
из документации к вебпаку:
import() calls use promises internally. If you use import() with older browsers, remember to shim Promise using a polyfill such as es6-promise or promise-polyfill.
skuvaWeb, например, автор пишет клиентский код для 2-х модулей (в терминологии Битрикс), которые разрабатывает битрикс-разработчик. И автор код этих модулей сливает в один файл. Вот тогда может возникнуть проблема, т.к. для каждого модуля JS-код свой.
Но это очень маловероятно, как я и писал ранее.