Как обновить NPM зависимости
Менеджер пакетов Node (npm) предоставляет различные функции, помогающие вам устанавливать и поддерживать зависимости вашего проекта.
Зависимости могут устаревать со временем из-за исправлений ошибок, новых функций и других обновлений. Чем больше у вас зависимостей проекта, тем сложнее следить за обновлениями.
Устаревшие пакеты могут представлять угрозу безопасности и негативно влиять на производительность. Обновленные пакеты предотвращают уязвимости. Это означает, что периодические проверки и обновления зависимостей очень важны.
Как поддерживать зависимости в актуальном состоянии
Теперь вы можете по очереди просматривать каждый отдельный пакет в package.json
, чтобы изменить версию и запустить npm install <package>@latest
, чтобы получить последнюю версию. Но это будет не самый эффективный метод.
Представьте, что у вас 20 или более пакетов, которым не помешало бы изменение версии. Вместо этого вам следует разработать рабочий процесс для периодической проверки наличия новых версий, пока количество устаревших зависимостей не выросло и обновлять их становится все труднее.
Вот рабочий процесс, который помогает мне оставаться на вершине обновлений: сначала выясните, какие пакеты нуждаются в обновлении и насколько отстают их версии. Затем выберите, обновлять пакеты по отдельности или пакетно. Всегда тестируйте обновления, чтобы убедиться, что не произошло разрушительных изменений.
Я предпочитаю выполнять обновление основных версий по отдельности. При крупных обновлениях вы, скорее всего, столкнетесь с разрушающими изменениями. Гораздо проще отменить или устранить изменения в коде одного пакета по сравнению со многими.
В этой статье я подробно рассмотрю методы проверки и обновления зависимостей.
Как использовать команду npm outdated
npm outdated
Эта команда проверит каждую установленную зависимость и сравнит текущую версию с последней версией в реестре npm. Результат будет выведен в виде таблицы с указанием доступных версий.
Она встроена в npm, поэтому не требуется скачивать дополнительные пакеты. npm outdated
- это хорошее место для начала, чтобы получить представление о количестве необходимых обновлений зависимостей.
- Current - текущая установленная версия.
- Wanted - максимальная версия пакета в соответствии с диапазоном semver.
- Latest - версия пакета, помеченная как последняя в реестре npm.
С помощью этого метода для установки обновлений для каждого пакета достаточно выполнить:
npm update
Помните, что при использовании npm update
никогда не произойдет обновление до версии, содержащей серьезные изменения. Он обновляет зависимости в package.json
и package-lock.json
. Будет использоваться "желаемая" версия.
Для получения "последней" версии добавьте @latest
к отдельным установкам, например, npm install react@latest
.
Как использовать npm-check-updates
Для более продвинутого и настраиваемого обновления я бы рекомендовал использовать npm-check-updates
. Этот пакет может делать все то же самое, что и npm outdated
и npm upgrade
, с некоторыми дополнительными опциями настройки. Однако он требует установки пакета.
Чтобы начать работу, установите пакет npm-check-updates
глобально:
npm install -g npm-check-updates
Затем запустите ncu
, чтобы отобразить пакеты для обновления. Как и npm outdated
, он не будет применять никаких изменений.
ncu
# Проверка package.json
[====================] 12/12 100%
@testing-library/user-event ^13.5.0 → ^14.2.1
@types/jest ^27.5.2 → ^28.1.4
@types/node ^16.11.42 → ^18.0.1
# Запустите ncu -u для обновления package.json
Чтобы обновить зависимости, вам нужно просто выполнить:
ncu --upgrade
# или
ncu -u
- Красный = мажор
- Голубой = минор
- Зеленый = патч
Это обновляет зависимости только в файле package.json
и выбирает последнюю версию, даже если она содержит разрушающие изменения. При использовании этого метода npm install
не запускается автоматически, поэтому обязательно запустите его после обновления package-lock.json
.
Чтобы выбрать желаемый тип версии, выполните ncu --target [patch, minor, latest, newest, greatest]
.
Как использовать интерактивный режим с npm-check-updates
ncu --interactive
# или
ncu -i
Интерактивный режим позволяет выбрать определенные пакеты для обновления. По умолчанию выбираются все пакеты.
Перейдите вниз по каждому пакету и используйте пробел, чтобы отменить выбор, и введите, когда будете готовы обновить все выбранные пакеты.
Есть несколько способов повысить интерактивность npm-check-updates
.
ncu --interactive --format group
Эта команда группирует и упорядочивает пакеты по основным, второстепенным и патч-релизам.
npm-check-updates
предоставляет другие полезные инструменты, такие как режим доктора, который устанавливает обновления и запускает тесты для проверки на наличие неработающих изменений.
Я настоятельно рекомендую ознакомиться с документацией, чтобы узнать больше обо всем, что может предложить этот пакет. Проект хорошо поддерживается, и на момент написания этой статьи еженедельная скорость загрузки составляла ~294,467.
Резюме
Регулярное обновление зависимостей поможет повысить безопасность и производительность ваших приложений.
npm outdated
и npm-check-updates
- полезные инструменты для проверки пакетов, которым не помешает обновление версии.
Я предлагаю попробовать оба инструмента, чтобы понять, какой из них лучше для разработчиков.
Надеюсь, эти методы помогут вам на пути к обновлению!
Если вы сталкиваетесь с трудностями в работе с NPM и ищете профессиональную помощь, Teacher Army может быть вашим идеальным партнером. Просто перейдите по ссылке и оставьте заявку, чтобы мы могли подобрать для вас опытного ментора по программированию.
Наш ментор проведет с вами индивидуальную консультацию, где сможет подробно объяснить любую тему, связанную с управлением зависимостями. Мы готовы помочь вам достичь ваших целей в любой области программирования!