Параметр maximumFileSizeToCacheInBytes используется в
библиотеке Sw-precache для ограничения максимального
размера файлов, которые могут быть кэшированы сервис-воркером. Его
основная цель — предотвратить добавление слишком больших файлов в кэш,
что может негативно повлиять на производительность и расход дискового
пространства у пользователя.
Sw-precache автоматически сканирует указанные директории проекта и
добавляет файлы в кэш на основе заданных критериев. По умолчанию
библиотека кэширует все файлы, соответствующие шаблонам, кроме явно
исключённых. Параметр maximumFileSizeToCacheInBytes
позволяет ограничить этот процесс, задавая максимальный размер файла в
байтах.
Пример: если maximumFileSizeToCacheInBytes установлен в
2 * 1024 * 1024 (2 МБ), файлы больше 2 МБ автоматически
игнорируются и не попадают в кэш.
Параметр передается в объект конфигурации при вызове функции генерации сервис-воркера:
const swPrecache = require('sw-precache');
swPrecache.write('service-worker.js', {
staticFileGlobs: [
'dist/**/*.js',
'dist/**/*.css',
'dist/**/*.html'
],
maximumFileSizeToCacheInBytes: 2 * 1024 * 1024 // 2 МБ
});
Пояснения:
staticFileGlobs — массив шаблонов файлов для
кэширования.maximumFileSizeToCacheInBytes — максимальный размер
файла в байтах. Файлы, превышающие это значение, исключаются из
кэша.Ограничение размера файлов предотвращает:
Выбор оптимального значения зависит от:
staticFileGlobs. Динамические запросы через
runtimeCaching на него не влияют.fs.statSync, чтобы гарантировать,
что все нужные файлы попадают в кэш.const gulp = require('gulp');
const swPrecache = require('sw-precache');
gulp.task('generate-service-worker', function(callback) {
swPrecache.write('dist/service-worker.js', {
staticFileGlobs: [
'dist/**/*.html',
'dist/**/*.js',
'dist/**/*.css'
],
maximumFileSizeToCacheInBytes: 2 * 1024 * 1024 // 2 МБ
}, callback);
});
В этом примере сервис-воркер будет автоматически кэшировать все файлы HTML, JS и CSS размером до 2 МБ. Более крупные файлы будут проигнорированы без нарушения сборки.