Итак, пакеты которые разработаны без заботы о размере и доступности зачастую становятся очень популярны и делают веб хуже. Что же мы, как комьюнити, можем сделать?
Разумеется, раз это open-source, то можем делать Pull Request-ы, чтобы улучшить эти популярные либы.
Звучит разумно и благородно, но получается не всегда.
Например, однажды я решил помочь одной библиотеке: сделал PR, где настроил инструменты для отслеживания размера и сказал автору, что помогу ему сделать либу легче. Однако мейнтейнер сказал, что ему это не интересно.
К тому же, зачастую, если пакет изначально разрабатывался без мыслей о размере, то его либо сложно, либо невозможно сделать легче хотя бы на 10%
Тот же tinycolor2 спроектирован как moment: сделать его ощутимо легче без потери функционала и без кучи breaking changes уже не выйдет
Если же решите помочь какому-либо проекту стать легче, сперва вам понадобится настроить в репозитории инструменты, чтобы отслеживать как ваши изменения меняют вес импортов. Вашим первым PR-ом может быть, например, установка и настройка size-limit.
Рекомендую именно size-limit, так как в нем легко отслеживать вес отдельных импортов с учетом tree-shaking, да и вообще установка и использование очень простые. Для работы над оптимизацией более чем достаточно.
Так же, можно добавить в репозиторий action, для авто-отчетов в Pull Request-ах, чтобы упростить мейнтенерам процесс проверки. Примеры:
github.com/preactjs/compr…
github.com/andresz1/size-…
С базовыми инструментами разобрались. Дальнейшие шаги в следующем треде.