tgoop.com/super_oleg_dev/96
Last Update:
Один из главных челленджей в задачке - поддержка фич PWA в development режиме.
Сгенерировать SW, вебманифест и иконки на этапе сборки приложения или сразу после, значительно проще.
Один из плюсов workbox - готовые webpack плагины - для генерации SW с нуля или для внедрения манифеста сборки в существующий исходник сервис-воркера. Манифест необходим если мы хотим предварительное кэширование основных ассетов приложения.
Выбрал второй вариант, так как планируются кастомные фичи, в будущем можно рассмотреть вариант автоматической генерации.
С этим workbox плагином есть проблема - он не поддерживает работу в watch режиме, что оказалось легко переопределить, но осталась нерешенная проблема с Hot Module Replacement - после пары апдейтов на клиенте HMR зацикливается и я так и не добрался до причины)
Итак, добавляю поддержку исходного файла с сервис-воркером написанном на TS, на основе которого плагин InjectManifest будет генерировать sw.js с добавленным манифестом сборки.
Тут всплыл отдельный кейс с нашей modern сборкой (те же чанки с кодом в более современном формате, имеют другие хэши), простым решением оказалось генерировать sw.js и sw.modern.js, в каждом из которых свои манифесты сборки с подходящими чанками.
BY SuperOleg dev notes
Share with your friend now:
tgoop.com/super_oleg_dev/96
