Я хочу получить более глубокое понимание комплектов Webpack, и у меня есть следующие вопросы. Предполагается, что весь код приложения разделен на два пакета: пакет B1
и пакет B2
:
- Если
B1
и B2
оба используют одну и ту же библиотеку, скажем lodash
, будут ли lodash
включены в B1
и B2
? - Можно ли отправлять и получать любую информацию в диапазоне от
B1
до B2
? Если да, то как? Насколько я знаю, пакеты Webpack - это IIFE. - Я также хочу понять, как трясется дерево для NPM модулей, которые делает Webpack. Поскольку встряхивание дерева удаляет весь неиспользуемый код, включая только код для импортированных функций, что произойдет, если импортируемая функция зависит от другой функции в том же / другом модуле? Webpack рекурсивно проверяет «стек» и включает ли все эти функции индивидуально? Или все экспортированные функции в любом модуле NPM всегда являются чистыми функциями, что делает ненужным рекурсивный импорт?
- Работает ли встряхивание дерева и для наших пользовательских JavaScript модулей, которые не могут экспортировать функции как чистые?