Кэширующий веб-пакет хэширует URL в сервисном работнике - PullRequest
0 голосов
/ 21 декабря 2018

Я играю с работниками сферы обслуживания.В настоящее время у меня есть следующий работник службы:

const CACHE_NAME = 'my-site-cache-v1';
const urlsToCache = [
    'index.html',
    'app.bundle.js',
    'images/image.jpg'
];

self.addEventListener('install', function(event) {
    console.log("install");
    // Perform install steps
    event.waitUntil(
        caches.open(CACHE_NAME).then(function(cache) {
            console.log('Opened cache');
            return cache.addAll(urlsToCache);
        })
    );
});

Однако я использую веб-пакет для добавления хеша для всех файлов при сборке.Это означает, что я не знаю, какие URL нужно кэшировать в сервисном работнике.

Я не уверен, как обойти это.

1 Ответ

0 голосов
/ 21 декабря 2018

Один из способов сделать это - использовать плагины для подключения либо к объекту компиляции, либо к конечной статистике, а затем программно создать сценарий работника сервиса, который вы можете добавить в вывод.

Плагины обычно регистрируют обработчик для событий emit или done, чтобы выполнить это.На этом этапе вы сможете перечислить испускаемые активы, их URI и зависимости исходного файла.

Я бы порекомендовал, возможно, взглянуть на Workbox , поскольку его целью является интеграция с API сервисного работника, более конкретно, workbox-webpack-plugin, поскольку он использует компилятор webpackдинамически создавать сценарий работника службы.html-webpack-plugin также является полезным источником информации, поскольку он довольно популярен, и большинство из нас может понять, что для этого нужно.

...