После установки библиотеки sw-precache необходимо убедиться, что она интегрирована в проект правильно и функционирует согласно ожиданиям. Этот процесс включает несколько последовательных шагов, каждый из которых важен для корректной работы сервис-воркера и кэширования ресурсов.
Первым шагом является проверка того, что пакет установлен и доступен через командную строку. Для этого выполняется команда:
npx sw-precache --version
или, если установлен глобально:
sw-precache --version
Ключевой момент: команда должна вернуть номер версии
установленного пакета. Если вместо этого возникает ошибка
command not found, необходимо проверить путь установки или
выполнить установку повторно через
npm install sw-precache --save-dev.
Для проверки работоспособности удобно создать минимальный
конфигурационный файл sw-precache-config.js:
module.exports = {
staticFileGlobs: [
'index.html',
'styles/**/*.css',
'scripts/**/*.js',
'images/**/*.{png,jpg,gif,svg}'
],
stripPrefix: './',
runtimeCaching: [{
urlPattern: /\/api\//,
handler: 'networkFirst'
}]
};
Выделение ключевого момента: даже минимальная конфигурация должна содержать:
staticFileGlobs — пути к статическим ресурсам, которые
будут кэшироваться.stripPrefix — корректная очистка пути для генерации
ключей кэша.runtimeCaching — стратегии кэширования для динамических
запросов.Для проверки генерации выполняется команда:
npx sw-precache --config=sw-precache-config.js
В результате в корневой папке проекта должен появиться файл
service-worker.js.
Важные моменты для проверки:
precacheConfig, включающие все указанные ресурсы.addToCacheList и
install с обработчиками событий сервис-воркера.staticFileGlobs и корректность конфигурационного
файла.Для проверки корректной регистрации сервис-воркера создается скрипт
подключения в index.html:
Ключевые моменты для диагностики:
404 или SecurityError
необходимо проверить путь к service-worker.js и протокол
(сервис-воркеры работают только по HTTPS или на
localhost).После успешной регистрации сервис-воркера проверка кэширования выполняется через инструменты разработчика браузера:
service-worker.js.staticFileGlobs ресурсы присутствуют.Выделение ключевого момента: если какие-либо файлы
отсутствуют, это может указывать на некорректно указанные пути или
ошибки в маске файлов (**/*.js vs *.js).
Для окончательной проверки необходимо эмулировать offline-режим:
Failed to fetch —
их быть не должно.Важно: для динамических запросов с
runtimeCaching можно временно отключить интернет и
убедиться, что стратегия networkFirst корректно возвращает
кэш при недоступности сети.
Для подтверждения корректной работы обновления:
styles/main.css).sw-precache.Ключевой момент: сервис-воркер обновляет кэш только
после окончания жизненного цикла текущей версии (install →
activate). Проверка через Application → Service
Workers → Update on reload позволяет ускорить тестирование.