Workbox — это новый проект от Google, который упрощает кодирование таких сценариев использования сервис-воркеров, как кэширование, фоновая синхронизация и постановка аналитики в очередь в автономном режиме.

Вы можете установить плагин workbox webpack из библиотеки NPM, используя следующую команду:

Плагин npm i workbox-webpack

Он установит последнюю библиотеку рабочих ящиков из NPM. Теперь, прежде всего, вам нужно сгенерировать файл сервисного работника, используя веб-пакет и рабочий ящик, поэтому в вашей конфигурации веб-пакета js напишите следующий код:

const {GenerateSW} = require('workbox-webpack-plugin');

Теперь, используя module.exports, определите плагин с конфигурацией рабочего ящика следующим образом:

новый Генерировать SW({

globDirectory: ‘./dist’,

globPatterns: [‘**/*.{html,js,css}’],

исключить: [/\.map$/, /\.json$/, /\.txt$/],

включают: [/main(.*)\.js$/, /vendor(.*)\.js$/],

ignoreUrlParametersMatching: [/manifest/, /robots/, /^utm_/],

skipWaiting: правда,

clientClaim: правда,

cacheId: ‘myPwa’,

swDest: ‘./serviceworker.js’

}),

Приведенный выше код создаст сервис-воркер, который добавит все файлы js, css, html в массив манифеста предварительного кэша, который будет добавлен в кеш при первой загрузке пользователем. Дополнительные параметры создания сервис-воркера см. на странице https://developers.google.com/web/tools/workbox/modules/workbox-webpack-plugin.

Чтобы зарегистрировать сервис-воркера, напишите ниже код:

if ("serviceWorker" в навигаторе) {
navigator.serviceWorker.register('/serviceworker.js');
}

Это все, что касается базовой интеграции Workbox с webpack. В следующей статье будет описана пользовательская реализация Workbox с использованием его плагинов и модулей.

Наша Часть 2 готова: https://medium.com/@chahatmiddha/integration-of-google-workbox-using-webpack-in-native-app-pwa-part-2-custom-implementation-3412fc71fae7