npm — это Nсистема управленияпакетами M, которая упрощает совместное использование и повторное использование кода разработчиками JavaScript, а также упрощает обновление кода, которым вы делитесь. (1)

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

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

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

  1. Быть в курсе, когда обновления становятся доступными; и
  2. Продолжаем и делаем обновления

Уведомление о появлении обновлений:

Вот несколько советов, которые я усвоил на практике:

  • Подписка в качестве наблюдателя за репозиторием Github на максимально возможное количество важных модулей. Из этого я могу видеть все взаимодействия репо в почтовой ветке, которую я могу просматривать в начале каждого дня.
  • Мониторинг прошлых и будущих проблем Github, возникающих в связи с нашими зависимостями. Следование рекомендованным сообществом подходам к обходу проблем, которыми может поделиться мое приложение, а затем отказу от этих хаков с исправлением ошибок версии. Я считаю, что делать много заметок в коде со ссылками на любые активные проблемы, чтобы это было видно.
  • Активно поднимать новые проблемы и комментировать активные проблемы из зависимостей нашего проекта. Еще лучше! Открываем Pull Requests, которые решают некоторые из этих проблем, и учимся вносить свой вклад.
  • Будьте в курсе документации по миграции по мере выхода официальных релизов. Принятие мер по незначительным обновлениям по мере их возникновения и формальное поднятие более крупных задач крупных обновлений в планировании спринта.
  • Написание большого количества тестов, ожидающих того, как наши зависимости будут вести себя в контексте нашего приложения, чтобы мы могли быстро выявлять любые критические изменения в результате обновлений версии, а не наших пользователей!
  • Регулярный мониторинг доступных обновлений с помощью npm outupdated:

Вот некоторые из вещей, которые я делаю. Я хотел бы услышать о том, что еще вы сделали, чтобы сохранить свои зависимости! Пишите в комментариях ниже :)

Далее: "Идем дальше и вносим обновления" (скоро)