Если в коде что-то закомментировано, то неспроста.

Одной из первых задачек на новом месте стало восстановление системы оповещений об обновлении нашего ПО для логистов. Принцип прост - на клиенте молотит service-worker, кэширует активные скрипты и ЦСС, при необходимости загружает и кэширует актуальные. Само собой, поскольку у нас все стильно-модно-молодежно, то воркер не самописный, а автосгенеренный через либу vite-plugin-pwa.

Первый этап восстановления был прост и прямолинеен - раскомментировать заглушенный 2 года назад компонент, который показывает приглашение обновиться, затем уточнить конфиг vite и немного изменить вызываемые функции vite-plugin-pwa. Потому что как оказалось в процессе, мы юзали уже давно deprecated-методы.

И поначалу все было хорошо, на тестовых стендах появлялись всплывашки, приложение обновлялось, но когда дело дошло до установки на прод, то начались чудеса. Иногда. Не всегда и не у всех, но плагин начал вести себя (в)с(т)ранно. Где-то он делал вид, что не может вытянуть скрипт или стили с 404 (анализ нетворка показывал, что он пытается загрузить уже неактуальный скрипт из предыдущей версии, который по имени из-за автоподставляемого хэша не соответствовал актуальному), где-то страница просто не перезагружалась после клика по кнопке "обновить" и запуска якобы обновляющей функции, которую предоставляет vite-plugin-pwa.

И "не у всех" и "не всегда". Приложением пользуется ~ 50 человек. Траблы возникали суммарно у ~ 4-5 человек от общего числа. Каждый день - у разных юзеров. На тестовых стендах ошибка тоже ведет себя как "плавающая". Кстати, гипотеза с тем, что проблему вызывает конфликт имени из-за автосгенеренного хэша, тоже не подтвердилась. И я начинаю понимать человека, который закомментировал эту фичу. Возможно, придется в обход писать самописный воркер (благо, вайт-плагин-пва позволяет отказаться от автогенерящегося варианта). Возможно, придется вообще решать эту задачу не через воркер, а через комбинацию localStorage и...ну сопоставление версии, прокидываемой в package.json и той, что у юзера в ЛС сидит.

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