NPM - Увеличивает ли установка под-зависимости размер вашего пакета? - PullRequest
1 голос
/ 22 апреля 2020

У меня есть приложение React. (хотя для целей этого вопроса технология не имеет значения)

Одной из зависимостей является библиотека material-ui.

Зависимостью библиотеки material-ui является react-transition-group library.

Значит ли это, что я могу "npm установить" библиотеку react-transition-group без увеличения размера моего JS пакета вообще?

1 Ответ

1 голос
/ 22 апреля 2020

Это будет зависеть от используемых версий react-transition-group. npm сделает все возможное, чтобы установить только одну версию модуля. Современные упаковщики (Webpack / Rollup) также попытаются использовать одну версию внутри пакета.

Так когда же он будет использовать один экземпляр и когда вы получите 2 копии?

Версии диапазонов перекрываются:

material-ui требуется версия ~1.1.0

Ваш package.json требует версию ^1.0.0

Поскольку эти диапазоны перекрываются, npm можно установить любую версию, соответствующую 1.1.*, и она будет работать для обоих модулей, и вы получите только 1 копию.

Диапазоны версий не перекрываются:

material-ui требуется версия ~1.1.0

Ваш package.json требует версию ^2.0.0

Поскольку эти диапазоны требуют разных основных версий SemVer, npm установит две копии, одну для выполнения каждое требование Бандлеру также нужно будет принести обе версии.

Может быть трудно точно сказать, какая версия существует в под-зависимости, но вы можете увидеть их все, запустив npm ls после запуска npm install it. покажет вам все пакеты и версии, которые установлены в проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...