Как правило, важно, чтобы страница / приложение, использующее ваш компонент, тестировалась и обновлялась любой новой версией вашего компонента.Поэтому ваша идея использования NPM хорошая.Как правило, желательно иметь это время задержки, чтобы разработчики страниц / приложений могли проверять функциональность, а также обрабатывать любые изменения API, которые могли произойти (преднамеренные или нет).
Для NPM, Семантическое управление версиями(SemVer) является стандартом де-факто.Идея состоит в том, что вы нумеруете свои версии таким образом, чтобы исправления (без изменений API) можно было немедленно обновлять в приложениях. Некоторые разработчики согласны с установкой последней версии патча вашего модуля. Многие предпочитают блокироваться для определенной версии и выпускают только после тестирования, как и любое другое обновление.
Помимо NPM, в прошлом я использовал хешированные или версионные URL длябиблиотека.Я также сохранил URL latest
, который перенаправляет на последнюю версию.Для тех, кто интегрирует мою библиотеку, которым все равно, какая у них версия, они всегда получат последнюю версию таким образом.Кроме того, браузеры могут кешировать цель перенаправления и делиться этим кешем с другими страницами, которые могут указывать точную версию.
Важное примечание: мы бы хотели, чтобы клиент получал обновления немедленно (внутренние).
Это не совсем возможно во всех случаях.В большинстве случаев использование правильных заголовков ответов для кэширования решит эту проблему.Хотя есть крайние случаи.Например, что вы будете делать, если пользователь загружает страницу, а затем отключается до того, как загружается ваш JavaScript?
При развертывании новых страниц всегда сложно.Некоторые из ваших клиентов будут на старых версиях, некоторые на новых.Поддерживайте обратную совместимость как можно лучше и устанавливайте заголовки кэширования в соответствии с вашими обстоятельствами.