Часть 1. Своевременное обновление зависимостей

Экосистема JavaScript быстро развивается, и большинство инструментов, фреймворков и библиотек обновляются довольно часто. Большинство библиотек выпускают незначительные обновления (например, с 2.3.x по 2.4.x) каждый месяц, а основные обновления с критическими изменениями (например, с 2.x на 3.x) каждые 6–12 месяцев.

Есть много веских причин для обновления зависимостей вашего приложения:

  • Вы можете использовать новейшие и лучшие функции. Часто вы можете отправить запрос функции или запрос на вытягивание на странице проекта Github и ожидать, что он будет включен в следующий второстепенный выпуск.
  • Обновления почти всегда включают исправления ошибок, улучшения производительности и критические исправления безопасности.
  • Документация, руководства и ответы на вопросы о переполнении стека обычно относятся к самой последней версии библиотеки / фреймворка. Трудно найти документацию или поддержку для более старых версий.
  • Многие вещи устарели или удаляются со временем, и проще обновлять приложение постепенно, чем делать все сразу после нескольких выпусков.

Как правило, вам следует обновлять зависимости приложения не реже одного раза в квартал. Ниже приведен рекомендуемый порядок обновления зависимостей в веб-приложениях, созданных с использованием React.

Реагировать

React 16 был выпущен недавно, и если вы все еще используете React 15.x (или ниже), было бы неплохо переключиться на 16.x как можно скорее, не только для улучшений, но и потому, что он включает в себя несколько взломов. изменения". Если у вас уже установлена ​​последняя версия, вы можете просмотреть примечания к выпуску или официальный блог, чтобы отслеживать изменения и решить, когда вам имеет смысл выполнить обновление.

Ссылки: примечания к выпуску, официальный блог



Создать приложение React

Если ваше приложение не было создано с использованием create-react-app, вам следует подумать о переходе на него, поскольку это действительно мощный инструмент, в который каждый месяц добавляются новые потрясающие функции. Он также удобно объединяет все devDependencies (например, Webpack, Babel, Jest и т. Д.) В один пакет с именем react-scripts, поэтому вам просто нужно обновить один пакет вместо десятков, не беспокоясь о проблемах совместимости.

Ссылки: примечания к выпуску, руководство пользователя



React Router

react-router имеет несколько плохую репутацию в плане обновления API снова и снова, но давайте посмотрим правде в глаза: это незаменимая библиотека, у которой нет разумной альтернативы (кроме ее потомка @reach/router). React Router v4 - это полностью переписанный продукт, и несколько новых функций и исправлений ошибок все еще добавляются с каждым второстепенным выпуском, поэтому было бы неплохо оставаться в курсе последних событий.

Ссылки: примечания к выпуску, официальные документы



Redux

Redux - это крошечная библиотека с небольшим и довольно стабильным API, поэтому ее не нужно часто обновлять (или вообще). Тем не менее, Redux 4.0 был выпущен недавно и включает в себя множество улучшений, поэтому вам следует подумать об обновлении. Кроме того, хотя Redux довольно стабилен, вы можете чаще обновлять промежуточное ПО и вспомогательные библиотеки, такие как react-redux, redux-saga, reselect и т. Д.

Ссылки: примечания к выпуску, официальные документы



Другие зависимости

После обновления основных зависимостей вы можете просматривать другие зависимости одну за другой и обновлять каждую до последней версии. Если вы используете VS Code, вы можете просто навести указатель мыши на зависимость, чтобы найти последнюю версию.

Для зависимостей с критическими изменениями вы можете решить, следует ли обновлять немедленно или позже (если вообще), в каждом конкретном случае.

Удаление неиспользуемых / редко используемых зависимостей

Разработчики часто устанавливают несколько библиотек, которые делают похожие вещи, просто чтобы опробовать их, и забывают удалить их из package.json. При обновлении следует удалить избыточные, повторяющиеся и неиспользуемые зависимости. Если вы делаете это впервые, не удивляйтесь, обнаружив, что 30–50% зависимостей в package.json никогда не используются в проекте.

Вам также следует рассмотреть возможность удаления зависимостей, которые используются очень редко или могут быть заменены небольшими вспомогательными функциями. Такие библиотеки, как lodash и moment, могут добавить более 100 КБ к вашему производственному пакету. Используйте такой инструмент, как BundlePhobia, чтобы решить, стоит ли сохранять зависимость, особенно если она используется лишь в нескольких местах.



Заключение

Обновление зависимостей вашего проекта может показаться скучной задачей, но на самом деле все наоборот: вы узнаете об интересных новых функциях и улучшениях, которые могут помочь вам работать более продуктивно, улучшить качество вашей кодовой базы и повысить производительность вашего приложения. И это действительно не займет много времени, если вы будете делать это достаточно часто!