🔥

Тред (Влад Шилов)


Итак, пакеты которые разработаны без заботы о размере и доступности зачастую становятся очень популярны и делают веб хуже. Что же мы, как комьюнити, можем сделать? Разумеется, раз это 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-… С базовыми инструментами разобрались. Дальнейшие шаги в следующем треде.