Исправление Vit, (текущая версия) :
Для этого уже несколько лет как есть решение. Из-за того что semversioning в отдельных случаях не хватало, фейсбуковцы написали yarn, который генерит конфиг для жествого шпилинга версий как у разработчика. Потом фичу и в npm подтянули.
В общем, я не знаю, какие там используют алгоритмы под капотом, но оно работает. Тупо в лоб дедупликацию абсолютно точно никто не делает. Как минимум с учетом версий, причем с той точностью которую захотел разработчик исходного пакета. Ну и можно совсем заморозить, если у тебя зависимостей вагон и нужны гарантии чтобы точно никто ничего не сломал.
Исходная версия Vit, :
Для этого уже несколько лет как есть решение. Из-за того что semversioning в отдельных случаях не хватало, фейсбуковцы написали yarn, который генерит конфиг для жествого шпилинга версий как у разработчика.
В общем, я не знаю, какие там используют алгоритмы под капотом, но оно работает. Тупо в лоб дедупликацию абсолютно точно никто не делает. Как минимум с учетом версий, причем с той точностью которую захотел разработчик исходного пакета. Ну и можно совсем заморозить, если у тебя зависимостей вагон и нужны гарантии чтобы точно никто ничего не сломал.