Модуль workbox-build интегрируется в процесс сборки на основе узлов и может генерировать целый сервисный работник или просто генерировать список активов для предварительного кэширования, которые могут использоваться в существующем сервисном работнике.
Большинство разработчиков используют два режима: generateSW и injectManifest . Ответы на следующие вопросы помогут вам выбрать правильный режим и конфигурацию.
Какой режим использовать
generateSW
Режим generateSW создает для вас файл service worker, настраиваемый с помощью параметров конфигурации, и записывает его на диск.
Когда использовать generateSW
- Вы хотите предварительно кэшировать файлы.
- У вас есть простые потребности в кэшировании во время выполнения.
Когда НЕ следует использовать generateSW
- Вы хотите использовать другие функции Service Worker (например, Web Push ).
- Вы хотите импортировать дополнительные скрипты или добавить дополнительную логику для пользовательских стратегий кэширования.
injectManifest
Режим injectManifest сгенерирует список URL-адресов для предварительного кэширования и добавит этот манифест предварительного кэширования в существующий файл сервис-воркера. В противном случае файл останется без изменений.
Когда использовать injectManifest
- Вам нужен больший контроль над вашим сервисным работником.
- Вы хотите предварительно кэшировать файлы.
- Вам необходимо настроить маршрутизацию и стратегии.
- Вы хотели бы использовать своего service worker с другими функциями платформы (например, Web Push ).
Когда НЕ следует использовать injectManifest
- Вам нужен самый простой способ добавления сервисного работника на ваш сайт.
Режим generateSW
Режим generateSW можно использовать в скрипте сборки на основе узлов, используя наиболее распространенные параметры конфигурации , например:
// Inside of build.js:
const {generateSW} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
generateSW({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
navigateFallback: '...',
runtimeCaching: [{
// Routing via a matchCallback function:
urlPattern: ({request, url}) => ...,
handler: '...',
options: {
cacheName: '...',
expiration: {
maxEntries: ...,
},
},
}, {
// Routing via a RegExp:
urlPattern: new RegExp('...'),
handler: '...',
options: {
cacheName: '...',
plugins: [..., ...],
},
}],
skipWaiting: ...,
swDest: '...',
}).then(({count, size, warnings}) => {
if (warnings.length > 0) {
console.warn(
'Warnings encountered while generating a service worker:',
warnings.join('\n')
);
}
console.log(`Generated a service worker, which will precache ${count} files, totaling ${size} bytes.`);
});
Это приведет к созданию сервисного работника с настройкой предварительного кэширования для всех файлов, выбранных вашей конфигурацией, а также предоставленными правилами кэширования во время выполнения.
Полный набор параметров конфигурации можно найти в справочной документации .
injectManifest Mode
Режим injectManifest можно использовать в скрипте сборки на основе узлов, используя наиболее распространенные параметры конфигурации , например:
// Inside of build.js:
const {injectManifest} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
injectManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
swDest: '...',
swSrc: '...',
}).then(({count, size, warnings}) => {
if (warnings.length > 0) {
console.warn(
'Warnings encountered while injecting the manifest:',
warnings.join('\n')
);
}
console.log(`Injected a manifest which will precache ${count} files, totaling ${size} bytes.`);
});
Это позволит создать манифест предварительного кэширования на основе файлов, выбранных вашей конфигурацией, и внедрить его в существующий файл Service Worker.
Полный набор параметров конфигурации можно найти в справочной документации .
Дополнительные режимы
Мы рассчитываем, что generateSW или injectManifest подойдут большинству разработчиков. Однако workbox-build поддерживает ещё один режим, который может быть полезен в определённых случаях.
getManifest Mode
Концептуально это похоже на режим injectManifest , но вместо добавления манифеста в исходный файл service worker он возвращает массив записей манифеста вместе с информацией о количестве записей и общем размере.
Режим injectManifest можно использовать в скрипте сборки на основе узлов, используя наиболее распространенные параметры конфигурации , например:
// Inside of build.js:
const {getManifest} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
getManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
}).then(({manifestEntries, count, size, warnings}) => {
if (warnings.length > 0) {
console.warn(
'Warnings encountered while getting the manifest:',
warnings.join('\n')
);
}
// Do something with the manifestEntries, and potentially log count and size.
});
Полный набор параметров конфигурации можно найти в справочной документации .
Типы
BasePartial
Характеристики
- дополнительные записи манифеста
(строка | ManifestEntry )[] необязательно
Список записей, подлежащих предварительному кэшированию, в дополнение к любым записям, которые генерируются в рамках конфигурации сборки.
- dontCacheBustURLsMatching
Регулярное выражение необязательно
Ресурсы, соответствующие этому требованию, будут считаться имеющими уникальные версии по URL и освобождены от стандартной очистки HTTP-кэша, выполняемой при заполнении предварительного кэша. Хотя это не является обязательным, рекомендуется указать регулярное выражение (RegExp), которое определит это, если ваш текущий процесс сборки уже вставляет значение
[hash]в каждое имя файла, поскольку это снизит нагрузку на полосу пропускания при предварительном кэшировании. - manifestTransforms
ManifestTransform [] необязательно
Одна или несколько функций, которые будут последовательно применены к сгенерированному манифесту. Если также указаны
modifyURLPrefixилиdontCacheBustURLsMatching, соответствующие им преобразования будут применены в первую очередь. - максимальный размер файла в байтах кэша
номер необязательно
Значение по умолчанию: 2097152
Это значение можно использовать для определения максимального размера файлов, которые будут предварительно кэшироваться. Это предотвращает случайное предварительное кэширование очень больших файлов, которые могли случайно соответствовать одному из ваших шаблонов.
- изменитьURLPrefix
объект необязательный
Объект, сопоставляющий строковые префиксы со строковыми значениями замены. Это можно использовать, например, для удаления или добавления префикса пути к записи манифеста, если настройки вашего веб-хостинга не соответствуют настройкам вашей локальной файловой системы. В качестве альтернативы, обеспечивающей большую гибкость, можно использовать параметр
manifestTransformsи предоставить функцию, которая изменяет записи в манифесте, используя заданную вами логику.Пример использования:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Тип
Опустить < GetManifestResult "manifestEntries"
> & объект
Характеристики
- filePaths
нить[]
GeneratePartial
Характеристики
- babelPresetEnvTargets
строка[] необязательная
Значение по умолчанию: ["chrome >= 56"]
Цели, которые необходимо передать в
babel-preset-envпри транспиляции пакета service worker. - cacheId
строка необязательная
Необязательный идентификатор, добавляемый к именам кэша. Это полезно в первую очередь для локальной разработки, когда несколько сайтов могут обслуживаться из одного источника
http://localhost:port. - очистка устаревших кэшей
логическое необязательное
Значение по умолчанию: false
Должен ли Workbox пытаться идентифицировать и удалять любые предварительные кэши, созданные старыми, несовместимыми версиями.
- клиентыПретензия
логическое необязательное
Значение по умолчанию: false
Должен ли сервисный работник начинать контролировать существующих клиентов сразу после активации.
- каталогИндекс
строка необязательная
Если навигационный запрос по URL-адресу, заканчивающемуся на
/не соответствует предварительно кэшированному URL-адресу, это значение будет добавлено к URL-адресу и проверено на наличие предварительного кэширования. Значение должно соответствовать индексу каталога, используемому вашим веб-сервером. - отключитьDevLogs
логическое необязательное
Значение по умолчанию: false
- игнорироватьURLПараметрыСоответствие
RegExp[] необязательно
Любые имена параметров поиска, соответствующие одному из регулярных выражений в этом массиве, будут удалены перед поиском совпадений в предварительном кэше. Это полезно, если ваши пользователи могут запрашивать URL-адреса, содержащие, например, параметры URL, используемые для отслеживания источника трафика. Если они не указаны, используется значение по умолчанию
[/^utm_/, /^fbclid$/]. - importScripts
строка[] необязательная
Список файлов JavaScript, которые следует передать в
importScripts()внутри сгенерированного файла сервис-воркера. Это полезно, если вы хотите, чтобы Workbox создал файл сервис-воркера верхнего уровня, но хотите включить дополнительный код, например, прослушиватель событий push. - inlineWorkboxRuntime
логическое необязательное
Значение по умолчанию: false
Следует ли включить код среды выполнения для библиотеки Workbox в сервис-воркер верхнего уровня или выделить его в отдельный файл, который необходимо развернуть вместе с сервис-воркером. Разделение среды выполнения означает, что пользователям не придётся заново загружать код Workbox каждый раз при изменении сервис-воркера верхнего уровня.
- режим
строка необязательная
Значение по умолчанию: «production»
Если задано значение «production», будет создан оптимизированный пакет Service Worker, исключающий отладочную информацию. Если это не указано здесь явно, будет использоваться значение
process.env.NODE_ENV, а в противном случае будет выполнен возврат к'production'. строка необязательная
Значение по умолчанию: null
Если указано, все запросы навигации по URL-адресам, не кэшированным предварительно, будут выполняться с использованием HTML-кода по указанному URL-адресу. Необходимо передать URL-адрес HTML-документа, указанного в манифесте предварительного кэширования. Это предназначено для использования в одностраничном приложении, где требуется, чтобы все навигации использовали общий HTML-код оболочки приложения .
RegExp[] необязательно
Необязательный массив регулярных выражений, ограничивающий URL-адреса, к которым применяется настроенное поведение
navigateFallback. Это полезно, если только часть URL-адресов вашего сайта должна рассматриваться как часть Single Page App . Если настроены обаnavigateFallbackDenylistиnavigateFallbackAllowlist, приоритет имеет denylist.Примечание : эти регулярные выражения могут применяться к каждому целевому URL во время навигации. Избегайте использования сложных регулярных выражений , иначе пользователи могут столкнуться с задержками при навигации по сайту.
RegExp[] необязательно
Необязательный массив регулярных выражений, ограничивающий URL-адреса, к которым применяется настроенное поведение
navigateFallback. Это полезно, если только часть URL-адресов вашего сайта должна рассматриваться как часть Single Page App . Если настроены обаnavigateFallbackDenylistиnavigateFallbackAllowlist, приоритет имеет denylist.Примечание : эти регулярные выражения могут применяться к каждому целевому URL во время навигации. Избегайте использования сложных регулярных выражений , иначе пользователи могут столкнуться с задержками при навигации по сайту.
логическое необязательное
Значение по умолчанию: false
Включать ли предварительную загрузку навигации в сгенерированном сервис-воркере. Если установлено значение true, необходимо также использовать
runtimeCachingдля настройки соответствующей стратегии ответа, которая будет соответствовать запросам навигации и использовать предварительно загруженный ответ.- офлайнGoogleAnalytics
boolean | GoogleAnalyticsInitializeOptions (необязательно)
Значение по умолчанию: false
Управляет включением поддержки автономной работы Google Analytics . При
trueвызов методаinitialize()изworkbox-google-analyticsбудет добавлен в созданный вами сервис-воркер. При значенииObjectэтот объект будет передан в вызовinitialize(), что позволит настроить поведение. - Кэширование во время выполнения
RuntimeCaching [] необязательно
При использовании инструментов сборки Workbox для генерации сервис-воркера вы можете указать одну или несколько конфигураций кэширования времени выполнения. Затем они транслируются в вызовы
workbox-routing.registerRouteс использованием заданной вами конфигурации сопоставления и обработчика.Подробности обо всех параметрах см. в документации
workbox-build.RuntimeCaching. В примере ниже показана типичная конфигурация с двумя определёнными маршрутами времени выполнения: - пропуститьОжидание
логическое необязательное
Значение по умолчанию: false
Добавлять ли безусловный вызов
skipWaiting()к сгенерированному сервис-воркеру. Еслиfalse, то вместо этого будет добавлен прослушивательmessage, позволяющий клиентским страницам активироватьskipWaiting()путем вызоваpostMessage({type: 'SKIP_WAITING'})для ожидающего сервис-воркера. - исходная карта
логическое необязательное
Значение по умолчанию: true
Создавать ли исходную карту для сгенерированных файлов Service Worker.
GenerateSWOptions
Тип
GetManifestOptions
GetManifestResult
Характеристики
- считать
число
- manifestEntries
- размер
число
- предупреждения
нить[]
GlobPartial
Характеристики
- globFollow
логическое необязательное
Значение по умолчанию: true
Определяет, следует ли следовать символическим ссылкам при создании манифеста предварительного кэширования. Подробнее см. определение
followв документацииglob. - globIgnores
строка[] необязательная
Значение по умолчанию: ["**\/node_modules\/**\/*"]
Набор шаблонов, соответствующих файлам, которые всегда следует исключать при формировании манифеста предварительного кэширования. Подробнее см. определение
ignoreв документацииglob. - globPatterns
строка[] необязательная
Значение по умолчанию: ["**\/*.{js,wasm,css,html}"]
Файлы, соответствующие любому из этих шаблонов, будут включены в манифест предварительного кэширования. Подробнее см. в руководстве
globшаблонам . - templatedURLs
объект необязательный
Если URL-адрес формируется на основе серверной логики, его содержимое может зависеть от нескольких файлов или другого уникального строкового значения. Ключи в этом объекте — это URL-адреса, сформированные сервером. Если значения представляют собой массив строк, они будут интерпретироваться как шаблоны
glob, и содержимое любых файлов, соответствующих этим шаблонам, будет использоваться для создания уникальной версии URL-адреса. При использовании с одной строкой она будет интерпретироваться как уникальная информация о версии, сгенерированная вами для данного URL-адреса.
InjectManifestOptions
Тип
InjectPartial
Характеристики
- точка инъекции
строка необязательная
Значение по умолчанию: «self.__WB_MANIFEST»
Строка, которую нужно найти в файле
swSrc. После нахождения она будет заменена сгенерированным манифестом предварительного кэширования. - swSrc
нить
Путь и имя файла сервисного работника, который будет прочитан в процессе сборки, относительно текущего рабочего каталога.
ManifestEntry
Характеристики
- честность
строка необязательная
- пересмотр
нить
- URL-адрес
нить
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
Тип
функция
Параметры
- manifestEntries
( ManifestEntry и объект)[]
- размер
число
- компиляция
неизвестно необязательно
Возврат
Обещание< ManifestTransformResult > | ManifestTransformResult
ManifestTransformResult
Характеристики
- манифест
( ManifestEntry и объект)[]
- размер
число
- предупреждения
строка[] необязательная
OptionalGlobDirectoryPartial
Характеристики
- globDirectory
строка необязательная
Локальный каталог, с которым вы хотите сопоставить
globPatterns. Путь указывается относительно текущего каталога.
RequiredGlobDirectoryPartial
Характеристики
- globDirectory
нить
Локальный каталог, с которым вы хотите сопоставить
globPatterns. Путь указывается относительно текущего каталога.
RequiredSWDestPartial
Характеристики
- swDest
нить
Путь и имя файла сервис-воркера, который будет создан в процессе сборки, относительно текущего рабочего каталога. Должен заканчиваться на «.js».
RuntimeCaching
Характеристики
- обработчик
Это определяет, как маршрут выполнения будет генерировать ответ. Чтобы использовать одну из встроенных
workbox-strategies, укажите её имя, например,'NetworkFirst'. В качестве альтернативы, это может быть функция обратного вызоваworkbox-core.RouteHandlerс пользовательской логикой ответа. - метод
HTTPMethod необязательный
Значение по умолчанию: «GET»
HTTP-метод для сопоставления. Значение по умолчанию
'GET'обычно достаточно, если только вам явно не требуется сопоставление'POST','PUT'или другим типом запроса. - параметры
объект необязательный
- фоновая синхронизация
объект необязательный
При настройке этого параметра будет добавлен экземпляр
workbox-background-sync.BackgroundSyncPluginкworkbox-strategiesнастроенным вhandler.- имя
нить
- параметры
QueueOptions необязательны
- трансляцияОбновление
объект необязательный
При настройке этого параметра будет добавлен экземпляр
workbox-broadcast-update.BroadcastUpdatePluginкworkbox-strategiesнастроенным вhandler.- Имя_канала
строка необязательная
- параметры
- cacheName
строка необязательная
Если указано, это установит свойство
cacheNameworkbox-strategiesнастроенное вhandler. - cacheableResponse
CacheableResponseOptions (необязательно)
При настройке этого параметра будет добавлен экземпляр
workbox-cacheable-response.CacheableResponsePluginкworkbox-strategiesнастроенным вhandler. - истечение срока действия
ExpirationPluginOptions (опционально)
При настройке этого параметра будет добавлен экземпляр
workbox-expiration.ExpirationPluginкworkbox-strategiesнастроенным вhandler. - fetchOptions
RequestInit необязательно
При такой настройке значение
fetchOptionsбудет передано вworkbox-strategiesнастроенные вhandler. - matchOptions
CacheQueryOptions необязательно
При такой настройке значение
matchOptionsбудет передано вworkbox-strategiesнастроенные вhandler. - networkTimeoutSeconds
номер необязательно
Если указано, это значение установит свойство
networkTimeoutSecondsдляworkbox-strategies, настроенных вhandler. Обратите внимание, что только'NetworkFirst'и'NetworkOnly'поддерживаютnetworkTimeoutSeconds. - плагины
WorkboxPlugin [] необязательно
Настройка этого параметра позволяет использовать один или несколько плагинов Workbox, у которых нет опций «быстрого» доступа (например,
expirationдляworkbox-expiration.ExpirationPlugin). Указанные здесь плагины будут добавлены вworkbox-strategiesнастроенные вhandler. - precacheFallback
объект необязательный
При настройке этого параметра будет добавлен экземпляр
workbox-precaching.PrecacheFallbackPluginкworkbox-strategiesнастроенным вhandler.- fallbackURL
нить
- rangeRequests
логическое необязательное
Включение этого параметра добавит экземпляр
workbox-range-requests.RangeRequestsPluginвworkbox-strategiesнастроенные вhandler.
- urlPattern
строка | RegExp | RouteMatchCallback
Этот критерий соответствия определяет, будет ли настроенный обработчик генерировать ответ на запросы, не соответствующие ни одному из предварительно кэшированных URL. Если определено несколько маршрутов
RuntimeCaching, то ответ будет отправлен первым из них,urlPatternкоторого совпадает.Это значение напрямую соответствует первому параметру, переданному в
workbox-routing.registerRoute. Для максимальной гибкости рекомендуется использовать функциюworkbox-core.RouteMatchCallback.
StrategyName
Перечисление
"CacheFirst" "Только кэш" «NetworkFirst» «Только сеть» "StaleWhileRevalidate"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Характеристики
- importScriptsViaChunks
строка[] необязательная
Одно или несколько имён фрагментов Webpack. Содержимое этих фрагментов будет включено в сгенерированный сервис-воркер посредством вызова
importScripts(). - swDest
строка необязательная
Значение по умолчанию: «service-worker.js»
Имя актива файла сервисного работника, созданного этим плагином.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Характеристики
- compileSrc
логическое необязательное
Значение по умолчанию: true
Если установлено
true(по умолчанию), файлswSrcбудет скомпилирован Webpack. Если установленоfalse, компиляция не будет выполнена (и нельзя будет использовать плагиныwebpackCompilationPlugins). Установите значениеfalse, чтобы внедрить манифест, например, в JSON-файл. - swDest
строка необязательная
Имя ресурса файла сервис-воркера, который будет создан этим плагином. Если не указано, имя будет основано на имени
swSrc. - webpackCompilationPlugins
любой[] необязательный
Дополнительные плагины
webpack, которые будут использоваться при компиляции входного файлаswSrc. Действительны только в том случае, еслиcompileSrcимеетtrue.
WebpackPartial
Характеристики
- куски
строка[] необязательная
Одно или несколько имен фрагментов, соответствующие выходные файлы которых должны быть включены в манифест предварительного кэширования.
- исключать
(строка | RegExp | функция)[] необязательно
Один или несколько спецификаторов, используемых для исключения ресурсов из манифеста предварительного кэширования. Это интерпретируется по тем же правилам , что и стандартный параметр
excludewebpack. Если не указано, используется значение по умолчанию[/\.map$/, /^manifest.*\.js$]. - исключить куски
строка[] необязательная
Одно или несколько имен фрагментов, соответствующие выходные файлы которых следует исключить из манифеста предварительного кэширования.
- включать
(строка | RegExp | функция)[] необязательно
Один или несколько спецификаторов, используемых для включения ресурсов в манифест предварительного кэширования. Это интерпретируется по тем же правилам , что и стандартный параметр
includeвwebpack. - режим
строка необязательная
Если установлено значение «production», будет создан оптимизированный пакет Service Worker, исключающий отладочную информацию. Если это не указано явно, будет использоваться значение
mode, заданное в текущей компиляцииwebpack.
Методы
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
Это копирует набор библиотек времени выполнения, используемых Workbox, в локальный каталог, который следует развернуть вместе с файлом вашего service worker.
В качестве альтернативы развертыванию этих локальных копий вы можете использовать Workbox с его официального URL-адреса CDN.
Этот метод доступен разработчикам, использующим workbox-build.injectManifest , которые предпочитают не использовать копии Workbox из CDN. Разработчикам, использующим workbox-build.generateSW не нужно явно вызывать этот метод.
Параметры
- destDirectory
нить
Путь к родительскому каталогу, в котором будет создан новый каталог библиотек.
Возврат
Обещание<строка>
Имя вновь созданного каталога.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
Этот метод создает список URL-адресов для предварительного кэширования, называемый «манифестом предварительного кэширования», на основе предоставленных вами параметров.
Он также принимает дополнительные параметры, которые настраивают поведение сервисного работника, например любые правила runtimeCaching , которые он должен использовать.
На основе манифеста предварительного кэширования и дополнительной конфигурации он записывает готовый к использованию файл service worker на диск в swDest .
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, size, warnings} = await generateSW({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
navigateFallback: '...',
runtimeCaching: [{
// Routing via a matchCallback function:
urlPattern: ({request, url}) => ...,
handler: '...',
options: {
cacheName: '...',
expiration: {
maxEntries: ...,
},
},
}, {
// Routing via a RegExp:
urlPattern: new RegExp('...'),
handler: '...',
options: {
cacheName: '...',
plugins: [..., ...],
},
}],
skipWaiting: ...,
swDest: '...',
});
Параметры
- конфигурация
Возврат
Обещание< BuildResult >
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
Этот метод возвращает список URL-адресов для предварительного кэширования, называемый «манифестом предварительного кэширования», а также сведения о количестве записей и их размере на основе предоставленных вами параметров.
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, manifestEntries, size, warnings} = await getManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
});
Параметры
- конфигурация
Возврат
Обещание< GetManifestResult >
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
Параметры
- имя_модуля
нить
- buildType
Тип сборки
Возврат
нить
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
Этот метод создает список URL-адресов для предварительного кэширования, называемый «манифестом предварительного кэширования», на основе предоставленных вами параметров.
Манифест внедряется в файл swSrc , а строка-заполнитель injectionPoint определяет, в какое место файла должен быть вставлен манифест.
Окончательный файл service worker с внедренным манифестом записывается на диск в swDest .
Этот метод не компилирует и не упаковывает ваш файл swSrc ; он просто обрабатывает внедрение манифеста.
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, size, warnings} = await injectManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
swDest: '...',
swSrc: '...',
});
Параметры
- конфигурация
Возврат
Обещание< BuildResult >