Loading 0
Свържете се с нас
Сподели

Блог

Превърти надолу

Как да намалим JavaScript кода с помощта на Baseline

Как да намалим JavaScript кода с помощта на Baseline

Как да оптимизираме зависимостите в уеб дизайна

В света на уеб дизайна, зависимостите играят ключова роля, но много разработчици не осъзнават, че много от библиотеките, които използват, вече са интегрирани в браузерите. В тази статия ще разгледаме как да направим одит на зависимостите си и да определим какво от тях може да бъде заменено с вградени функции на браузера.

Зависимостите и браузерите

Много от нас инсталират зависимост веднъж и никога не я проверяват отново. Въпреки че библиотеките вършат работа, браузерите също се развиват, и много от функциите, които преди бяха недостъпни, сега са налични.

В типично JavaScript приложение, можете да откриете между 60KB и 90KB (с минимизиране и компресиране) зависимости, които браузерът може да обработва самостоятелно. Функции като форматиране на дати и числа, HTTP заявки и модални прозорци вече не изискват външни библиотеки.

Какво е “Baseline”?

Проектът “Baseline” от WebDX Community Group предоставя информация за безопасността на уеб функциите в основните браузери. Функциите могат да бъдат в три състояния:

  • Ограничена наличност: Функцията не е налична във всички основни браузери.
  • Ново налична: Функцията е налична в основните браузери, но не и на по-стари устройства.
  • Широко налична: Функцията е налична за повече от 30 месеца и може да се използва без притеснения.

Рамка за вземане на решения

Преди да премахнете библиотека, задайте си три въпроса:

  1. Безопасна ли е замяната за моята аудитория?
  2. Какво ще ми струва замяната?
  3. Покрива ли платформената функция моите реални нужди?

Клъстери на зависимостите

Клъстер 1: Интернационализация

Тук ще намерите много библиотеки, които вече не са необходими, благодарение на вградените функции на браузера:

  • timeago.jsIntl.RelativeTimeFormat
  • pluralizeIntl.PluralRules
  • numeralIntl.NumberFormat

Клъстер 2: HTTP клиенти

Библиотеки като axios и superagent могат да бъдат заменени с fetch и AbortController, които вече са широко налични.

Клъстер 3: UI примитиви

Модалните прозорци и тултиповете могат да бъдат заменени с вградените елементи

и Popover API, които предлагат по-добра достъпност и по-малко код.

Клъстер 4: Lodash утилити

Функции от Lodash като groupBy и cloneDeep вече имат вградени алтернативи в JavaScript.

Клъстер 5: Temporal

Тази библиотека, която замества Date, все още не е широко налична. В момента е по-добре да се запази старата библиотека, докато Temporal не стане достъпна за всички браузери.

Как да проведем одит на зависимостите

  1. Списък на зависимостите: Използвайте npm ls --omit=dev --depth=0 за да видите какво е налично.
  2. Измерване на разходите: Използвайте Bundlephobia за да видите размера на всяка зависимост.
  3. Проверка на статус: Проверете наличността на платформената функция на webstatus.dev.
  4. Задайте трите въпроса: За всяка библиотека с платформа замяна, задайте трите въпроса.
  5. Замяна при нужда: За широко налични функции, заменете и продължете. За нови, проверете аудиторията си или добавете резервен вариант.

Заключение

Оптимизацията на зависимостите не е еднократен процес. Браузерите постоянно добавят нови функции, и е важно редовно да правите одит на зависимостите си. Сега е времето да проверите какво от вашите зависимости може да бъде заменено с вградени функции на браузера.

Изберете един от клъстерите и проверете какво може да бъде оптимизирано в package.json на вашето приложение.

01.