npm — это Nсистема управленияпакетами M, которая упрощает совместное использование и повторное использование кода разработчиками JavaScript, а также упрощает обновление кода, которым вы делитесь. (1)
Когда наши современные стеки зависят от npm (часто), мы должны сделать все возможное, чтобы вернуть рукопожатие и поддерживать наши зависимости в актуальном состоянии как можно чаще и как можно безопаснее.
Достаточно просто добавить свои первые зависимости в проект, но многие из нас не обновляют и не поддерживают зависимости наших проектов активно, как только наши продукты выходят за пределы альфа-фазы.
Поддержание зависимостей в актуальном состоянии требует двух школ дисциплины:
- Быть в курсе, когда обновления становятся доступными; и
- Продолжаем и делаем обновления
Уведомление о появлении обновлений:
Вот несколько советов, которые я усвоил на практике:
- Обращая внимание на Семантическое управление версиями зависимостей, которые я решил включить. Узнаем, что означают все цифры и символы:
- Подписка в качестве наблюдателя за репозиторием Github на максимально возможное количество важных модулей. Из этого я могу видеть все взаимодействия репо в почтовой ветке, которую я могу просматривать в начале каждого дня.
- Мониторинг прошлых и будущих проблем Github, возникающих в связи с нашими зависимостями. Следование рекомендованным сообществом подходам к обходу проблем, которыми может поделиться мое приложение, а затем отказу от этих хаков с исправлением ошибок версии. Я считаю, что делать много заметок в коде со ссылками на любые активные проблемы, чтобы это было видно.
- Активно поднимать новые проблемы и комментировать активные проблемы из зависимостей нашего проекта. Еще лучше! Открываем Pull Requests, которые решают некоторые из этих проблем, и учимся вносить свой вклад.
- Будьте в курсе документации по миграции по мере выхода официальных релизов. Принятие мер по незначительным обновлениям по мере их возникновения и формальное поднятие более крупных задач крупных обновлений в планировании спринта.
- Написание большого количества тестов, ожидающих того, как наши зависимости будут вести себя в контексте нашего приложения, чтобы мы могли быстро выявлять любые критические изменения в результате обновлений версии, а не наших пользователей!
- Регулярный мониторинг доступных обновлений с помощью
npm outupdated:
Вот некоторые из вещей, которые я делаю. Я хотел бы услышать о том, что еще вы сделали, чтобы сохранить свои зависимости! Пишите в комментариях ниже :)
Далее: "Идем дальше и вносим обновления" (скоро)