Библиотека sw-precache предоставляет механизм для
автоматической генерации сервис-воркеров с заранее кэшированными
ресурсами. Один из ключевых аспектов настройки генерации — контроль
вывода информации о процессе кэширования. Именно для этого предназначен
параметр verbose.
verboseПараметр verbose является булевым флагом, который
определяет, будет ли sw-precache выводить подробную информацию о ходе
работы. Его значение может быть true или
false.
verbose: true — выводится подробный
лог о всех шагах генерации сервис-воркера, включая количество файлов,
пути к ним и любые предупреждения.verbose: false — логирование
минимально, показываются только критические ошибки и финальные
результаты.Пример настройки:
const swPrecache = require('sw-precache');
swPrecache.write('service-worker.js', {
staticFileGlobs: [
'dist/**/*.js',
'dist/**/*.css',
'dist/**/*.html',
'dist/images/**/*.{png,jpg,gif,svg}'
],
stripPrefix: 'dist/',
verbose: true
}, function(error) {
if (error) {
console.error('Ошибка генерации service-worker:', error);
} else {
console.log('Service-worker успешно создан');
}
});
В этом примере verbose: true позволяет видеть полный
перечень файлов, которые будут кэшированы, а также информацию о том,
какие файлы были исключены из кэша.
При включенном verbose логирование sw-precache делится
на несколько ключевых этапов:
Сканирование файловой системы Появляется список
всех файлов, удовлетворяющих шаблонам в staticFileGlobs.
Пример:
Found 15 files to cache:
dist/index.html
dist/app.js
dist/styles/main.css
...Обработка исключений и фильтров Если
используется параметр dontCacheBustUrlsMatching или другие
фильтры, sw-precache логирует файлы, к которым применяются исключения.
Это позволяет отследить, какие ресурсы будут загружаться без
автоматического кеш-баста.
Генерация service-worker.js Лог выводит размер и количество файлов, включённых в итоговый скрипт сервис-воркера. Например:
Service worker generated. Total size: 215 KB, Total files: 15Ошибки и предупреждения Любые ошибки при чтении файлов или записи service-worker.js отображаются в консоли в читаемом виде. Пример:
Warning: Unable to read dist/images/logo.svg
Error: Failed to write service-worker.jsПараметр verbose особенно полезен в сочетании с:
handleFetch — при включенном
логировании видны все обработанные запросы на этапе генерации.runtimeCaching — позволяет
отслеживать, какие правила кэширования для динамических запросов будут
записаны в service-worker.logger — параметр, который позволяет
подменить стандартный вывод sw-precache на кастомную функцию. При
verbose: true кастомный логер получает все сообщения о
процессе генерации.Пример кастомного логирования:
swPrecache.write('service-worker.js', {
staticFileGlobs: ['dist/**/*.js'],
stripPrefix: 'dist/',
verbose: true,
logger: function(message) {
const timestamp = new Date().toISOString();
console.log(`[${timestamp}] ${message}`);
}
});
В этом случае каждая строка логирования получает отметку времени, что удобно для анализа процесса при автоматизированных сборках.
verbose не влияет на работу сервис-воркера на клиентской
стороне. Он полностью ориентирован на разработчика, обеспечивая
прозрачность генерации.
verbose: true для полной информации о файлах и
процессах.verbose: false, чтобы не загромождать логи и ускорить
процесс генерации.Использование verbose совместно с кастомными логерами
позволяет интегрировать sw-precache в сложные пайплайны CI/CD и вести
централизованное логирование сборок.