Общая зависимость - PullRequest
       32

Общая зависимость

0 голосов
/ 18 марта 2020

У меня есть библиотека A, зависящая от библиотеки C версия "X"

Библиотека A также зависит от библиотеки B

Библиотека B зависит от версии библиотеки C "Y"

При использовании веб-пакета для упаковки библиотеки A, какая версия библиотеки C будет упакована? Будет ли это и X, и Y?

1 Ответ

0 голосов
/ 18 марта 2020

Последовательность логики c, которая определит ответ на ваш вопрос, является динамической c, поэтому она может зависеть от многих факторов. Однако в общих чертах это выглядит следующим образом:

Ваш менеджер пакетов (NPM, Yarn, et c.) Будет первым, кто будет вмешиваться. Дерево зависимостей будет пересмотрено, и все модули будут распределены по разным уровням в зависимости от того, как они связаны, очевидно, также с учетом разрешенных версий для пакета. Этот шаг может уже удалить дублированные зависимости (даже если в разных местах требуются две разные версии. Если найдена общая действительная версия, она будет использоваться вместо этого).

Если общая действительная версия не найдена, то вы Будут иметь разные версии одного и того же пакета на разных уровнях дерева (они будут иметь одинаковые имена, но разные пути), впоследствии Webpack будет обрабатывать их как разные модули.

Однако, общие зависимости этих в настоящее время различные модули будут дедуплицированы в зависимости от конфигурации Webpack.

Короче говоря, убедитесь, что существует множество уровней алгоритмов, которые работают исключительно с целью оптимизации вашего окончательного комплекта. Библиотека C версии "X" и Библиотека C версии "Y" не будут присутствовать, если только это не будет абсолютно необходимо, и при этом общие зависимости не будут повторяться.

...