Поддержание ваших зависимостей Javascript в актуальном состоянии может стать работой на полный рабочий день.

Со временем зависимости проекта могут устареть из-за исправления ошибок, новых функций и других обновлений. Если в вашем проекте много зависимостей, может быть сложно следить за этими изменениями.

Использование устаревших пакетов может привести к угрозам безопасности и проблемам с производительностью, поэтому важно поддерживать ваши пакеты в актуальном состоянии.

У нас есть несколько вариантов решения этой проблемы.

  1. Мы можем просмотреть зависимости одну за другой и выполнить следующую команду.
npm install <package>@latest

Это может быть утомительно и отнимать много времени

2. Команда npm outdated проверит каждую установленную зависимость относительно текущей версии в реестре npm и распечатает таблицу с указанием текущей, желаемой (максимальная версия пакета semvar) и последней версии.

npm outdated

Package                  Current    Wanted       Latest  Location  Depended by
@bugsnag/js              7.19.0     7.20.0       7.20.0    -       crm_api
@bugsnag/plugin-express  7.18.0     7.19.0       7.19.0    -       crm_api
aws-sdk                  MISSING    2.1333.0     2.1333.0  -       crm_api
body-parser              1.20.1     1.20.2       1.20.2    -       crm_api
colors                   1.3.2      1.4.0        1.4.0     -       crm_api
dotenv                   8.3.2      8.6.0        16.0.3    -       crm_api
express                  4.17.3     4.18.2       4.18.2    -       crm_api

3. npm-check-updates (NCU) — это инструмент командной строки, который позволяет вам обновлять зависимости в вашем файле package.json до их последних версий. Он предоставляет простой способ поддерживать актуальность проекта Node.js с помощью последней версии его зависимостей без ручного редактирования файла package.json.

Установить его несложно. Сначала установите глобально npm-check-updates

npm i -g npm-check-updates 

После его установки выполните следующую команду.

ncu

@bugsnag/js                ^7.6.0  →    ^7.20.0     
@bugsnag/plugin-express    ^7.6.0  →    ^7.19.0     
aws-sdk                  ^2.825.0  →  ^2.1333.0     
body-parser               ^1.19.0  →    ^1.20.2     
dotenv                     ^8.2.0  →    ^16.0.3     
express                   ^4.17.1  →    ^4.18.2     

Предыдущая команда покажет вам все новые зависимости для проекта в текущем каталоге.

Это все, что вам нужно:

  1. Перечислите устаревшие зависимости в вашем проекте и их последние версии.
  2. Обновите файл package.json до последних версий ваших зависимостей.
  3. Предварительный просмотр изменений перед их внесением
  4. Отфильтруйте зависимости, которые вы хотите обновить

Вы можете легко обновить, просмотреть новую рекомендуемую версию и вручную обновить файл package.json до новой версии зависимости.

У вас есть возможность запустить эту команду в интерактивном режиме, что даст вам возможность выбрать определенные пакеты для обновления.

ncu -i

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

ncu -u

Сводка

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

  1. Безопасность: устаревшие пакеты могут содержать известные уязвимости, которыми могут воспользоваться злоумышленники. Обновление до последних версий пакетов может помочь снизить эти риски безопасности.
  2. Исправления ошибок: обновленные пакеты часто содержат исправления ошибок, которые могут улучшить стабильность и функциональность вашего проекта. Это может помочь вам избежать потенциальных проблем, которые могут возникнуть из-за использования устаревших пакетов.
  3. Производительность: новые версии пакетов могут иметь оптимизацию производительности, которая может повысить скорость и эффективность вашего проекта.
  4. Совместимость: зависимости могут зависеть друг от друга, а устаревшие пакеты могут вызывать проблемы совместимости с другими частями вашего проекта. Поддержание всех пакетов в актуальном состоянии может помочь обеспечить бесперебойную работу вашего проекта.

Регулярно обновляя зависимости вашего пакета, вы можете улучшить безопасность, стабильность и производительность вашего проекта, избегая при этом проблем совместимости.