fullstack-development / react-redux-starter-kit

Modular starter kit for React+Redux+React Router projects.

Home Page:https://demo.fullstack-development.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Прикрутить дупликат чекер

in19farkt opened this issue · comments

Я поресечил и попробовал дубликаты поубирать. Имхо, не стоит прикручивать этот плагин на постоянку в проект, если не будет необходимости сократить размер бандла, ибо решений нормальных по исправлению дубликатов нет. Самое лучшее это написать разрабам либы ишу и ждать пока обновят) ну или попробовать до последней версии обновиться.

В основном предлагают использовать алиасы вебпака, но это тоже такое себе, ибо если в либе обновится мажорная версия зависимости, а у нас из-за алиаса будет версия ниже, то будет тяжело найти в чем же ошибка. Да и поддерживать такое будет ресурсозатратно.

Npm dedupe вообще странно отрабатывает, плюс пишут что бывают конфликты в пакетах из-за него.

Есть решение ostap,, но он смотрит на дубли в package.json, как то строя внутри дерево зависимостей. На наших проектах он дублей не выдал, да и дубли обычно из-за внутренних зависимостей пакетов лезут

@chmnkh @NikitaRzm @Znack может еше какие решения предложите

Тут скорее всего без вариантов. С этим борются еще с пещерных дней жизни первобытного человека и никак не решат, потому что дубовые js-разрабы тянут в свои 500 байт библиотечного кода 2кб кода для использования какого-нибудь тупого assert. И если этот тупой ассерт в паре разных версий у двух разных библиотек - то тут просто без вариантов, они оба полетят в бандл и ты получишь 4.5 кб +- бесполезного кода :)

Тут проблема решается на другом уровне: смотрим качество кода библиотек просто, и если есть критичные вещи в нужных нам - пишем альтернативы или форкаем и выпиливаем то, что нам нафик не удалось ( и может делаем ПР-чик).

Мои мысли такие :)

ну как минимум полезно знать что у тебя в зависимостях херня творится, и если есть время попытаться пофиксить самые тяжелые дубликаты.

Я тогда предлагаю не добавлять на уровне вебпак конфига эту проверку, а вынести в отдельный npm-скрипт, который будет искать дубликаты.