Контекст: у меня есть производственное приложение ( здесь , если хотите посмотреть), которое в настоящее время использует пересмотр статического ресурса с использованием пакета gulp-rev-all
, который похож на gulp-rev
, за исключениемчто он также обрабатывает зависимости при генерации хэшей контента.Он генерирует новый набор файлов, которые имеют статические имена (например, goals.js
становится goals.6a5aa614.js
) и которые ссылаются друг на друга, используя эти статические имена.Затем я передаю эти файлы вместе с Fastly CDN на производстве, поэтому мой сервер NodeJS не используется активно для статических ресурсов.Это прекрасно работает.
Сейчас я работаю над тем, чтобы сайт работал в автономном режиме с сервисными работниками.Поскольку в прошлом году я проделал большую работу по логике синхронизации, динамическую часть сайта было довольно легко перестроить.Но я немного растерялся из-за того, что делать с моими статическими активами.
Я подумал, что буду использовать рабочий ящик, и это, похоже, работает нормально.Но workbox precache
использует запросы для очистки кэша, а не для изменения имен файлов, и кажется глупым делать и то, и другое.Но если я перестану использовать версионные имена, то как мне разрушить кеш в браузерах, которые не поддерживают сервисный работник?
(у меня есть еще один связанный вопрос, который имеет смысл сохранитьиспользование Fastly, учитывая, что ответы Fastly будут непрозрачными для SW и, следовательно, не обязательно являются хорошим вариантом для предварительного кэширования? Хотя без Fastly приложение станет намного медленнее для тех, кто не использует сервисных работников, что звучит противоположно подходу PWA.Должен ли я добавить кеш nginx или что-то в этом роде? (Я понятия не имею, что это такое, но я слышал, что это упоминалось несколько раз))
Мне кажется, что должно быть элегантное решениедля этого, но мое понимание gulp
достаточно ограничено, поэтому мне трудно понять, что возможно, а мое понимание ServiceWorkers и кэширования достаточно ограничено, и мне трудно точно знать, чего я хочу.
Поэтому у меня возникли проблемы с получением ответа на этот вопрос:
Как я могу адаптировать пересмотр статического ресурса gulp для работы с ServiceWorkers?
Одна вещь, которая будет полезна, это просто ссылка на примеры того, как другие производственные приложения обрабатывают это.