Перейти к содержимому
4 / 13

Атомарный деплой фронтенда: почему пользователи получают 404 на чанках и как это лечить

Проблема возникает так: пользователь открыл приложение до деплоя, получил HTML со ссылками на чанки версии A, а после деплоя эти файлы исчезли — при переходе на ленивую страницу браузер запрашивает page.9f2c1a.js и получает 404. Приложение падает на ровном месте, причём только у тех, кто был онлайн в момент выкатки. Лечится это тремя мерами вместе. Не удалять старые ассеты сразу: новая версия выкладывается рядом, старые файлы живут ещё несколько дней — благо они хешированы и не конфликтуют. Атомарное переключение HTML: HTML всех версий обновляется одномоментно, а не файл за файлом, иначе часть пользователей получит смесь. Обработка ошибки загрузки чанка на клиенте: перехватить сбой динамического импорта и предложить перезагрузку — это последний рубеж, который превращает белый экран в понятное сообщение. Дополнительно помогает уведомление «доступна новая версия» через отдельный файл с номером сборки.

Атомарный деплой фронтенда: почему пользователи получают 404 на чанках и как это лечить | JScriptiser