Обновляем пакеты NPM

Обновляем пакеты NPM

Когда обновлять npm пакеты

  • Устранение уязвимостей: как только обнаруживаются уязвимости в зависимостях, их следует немедленно обновить для обеспечения безопасности вашего приложения.
    Некоторые разработчики архивируют свои репозитории в ответ на сообщения об уязвимостях, оставляя зависимые проекты в неведении о потенциальных рисках. Это означает, что эти пакеты могут содержать непатченные или незарегистрированные уязвимости, угрожая проектам, которые от них зависят.
  • Новые функции: обновление пакетов для получения доступа к новым функциям или улучшенной функциональности.
  • Совместимость и исправления ошибок: когда новые версии пакетов исправляют известные ошибки или улучшают совместимость с другими пакетами или платформами.
  • Обновления среды выполнения: например, при выходе новой версии Node.js может потребоваться обновить пакеты для обеспечения совместимости.
  • Регулярное обслуживание: периодическое обновление пакетов (например, ежемесячно или ежеквартально) может помочь поддерживать проект в актуальном состоянии.
    Около 2.1 миллиарда раз в неделю пользователи реестра NPM скачивают устаревшие пакеты. Это означает, что многие проекты зависят от пакетов, которые больше не поддерживаются или имеют устаревший код. Такие пакеты могут включать уязвимости или быть несовместимыми с новыми версиями других пакетов или технологий.

Риски обновления

  • Совместимость: Новые версии могут быть несовместимы с вашим текущим кодом или другими пакетами.
  • Нестабильность: Некоторые обновления могут содержать непротестированные или нестабильные изменения.
  • Изменение API: Обновления могут включать изменения в API, требующие модификации вашего кода.
  • Затраты времени: Исследование, тестирование и внедрение обновлений может потребовать значительных усилий.
  • Риск для бизнеса: Особенно в критических или производственных средах, обновления могут внести риск в стабильность приложений.

История одного NPM пакета "Left-Pad"

Итак, был однажды маленький npm пакет под названием "left-pad". Этот пакет был, мягко говоря, скромным: его единственная задача – добавить несколько пробелов к строке, чтобы она выравнивалась по левому краю. Звучит не очень впечатляюще, правда? Но, о ужас, этот маленький пакет был использован тысячами других пакетов, включая такие крупные проекты, как Babel!

Но однажды создатель "left-pad" удалил его из npm реестра из-за некоторых разногласий с сообществом. И тут началось веселье! Представьте себе эффект домино: один маленький пакет исчез, и вдруг огромное количество проектов по всему миру начали падать, как карточные домики. Разработчики по всему миру хватались за головы, пытаясь понять, почему их код вдруг перестал работать.

В конце концов, npm вернул "left-pad" обратно в реестр для стабильности экосистемы, но этот инцидент показал всем важность таких, казалось бы, незначительных зависимостей.

22
2 комментария

Подытог: обновляйтесь когда вы понимаете зачем это делаете

Ответить

все так 👍

Ответить