Лично я думаю, что вы должны начать с оценки масштаба проблемы. Это будет довольно болезненно, но я бы составил список зависимостей и определил, какие именно части проекта используют какие.
Тогда я бы точно определил, какие функции каждой из них вы на самом деле используете (во многих случаях у вас будет огромная сторонняя библиотека, которую вы используете крошечной частью). *
Получив эту информацию, вы хотя бы узнаете, с чем имеете дело.
Моим следующим шагом будет просмотр всех зависимостей, которые вы используете только в небольшой степени. Проверка может обнаружить вещи, которые вы могли бы использовать из других библиотек, что исключило бы менее используемые библиотеки.
Я бы также осмотрелся, чтобы увидеть, есть ли что-нибудь маленькое, что вы могли бы просто переписать и включить в свою собственную базу кода.
Наконец, я бы осмотрел поставщиков ваших зависимостей и их конкурентов, чтобы узнать, содержат ли последние версии больше функциональности, которая позволит вам исключить несколько других.
Тогда вы просто задаетесь вопросом, лучше ли сильно зависеть от нескольких поставщиков или меньше зависеть от многих поставщиков !! ; О)