сборка рабочего ящика

Модуль 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-код оболочки приложения .

  • навигацияFallbackAllowlist

    RegExp[] необязательно

    Необязательный массив регулярных выражений, ограничивающий URL-адреса, к которым применяется настроенное поведение navigateFallback . Это полезно, если только часть URL-адресов вашего сайта должна рассматриваться как часть Single Page App . Если настроены оба navigateFallbackDenylist и navigateFallbackAllowlist , приоритет имеет denylist.

    Примечание : эти регулярные выражения могут применяться к каждому целевому URL во время навигации. Избегайте использования сложных регулярных выражений , иначе пользователи могут столкнуться с задержками при навигации по сайту.

  • navigationFallbackDenylist

    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

Характеристики

  • манифест

    ( 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

      строка необязательная

      Если указано, это установит свойство cacheName workbox-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 | функция)[] необязательно

    Один или несколько спецификаторов, используемых для исключения ресурсов из манифеста предварительного кэширования. Это интерпретируется по тем же правилам , что и стандартный параметр exclude webpack . Если не указано, используется значение по умолчанию [/\.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: '...',
});

Параметры

Возврат

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: ...,
});

Параметры

Возврат

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: '...',
});

Параметры

Возврат