Неправильное расположение до кеша - PullRequest
0 голосов
/ 06 мая 2018

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

Мой Webpack output.path - это 'path.resolve (' ./ scripts / app / dist ')' и моя конфигурация Workbox:

new WorkboxPlugin.InjectManifest({
        swSrc: path.resolve("./scripts/app/src/service-worker.js"),
        swDest: "../../../sw.js",        
        globDirectory: path.resolve("./"),
        globPatterns: [
            "scripts/**/*.js",
            "fonts/**/*.{eot,ttf,woff,woff2,otf}",
            "images/**/*.{png,jpg,svg,gif,ico}",
            "styles/**/*.css"
        ]
    });

Поскольку по умолчанию Workbox создает файл sw.js в файле output.path, и я хочу, чтобы он находился в корне моего сайта, у меня есть ../../../sw.js, но манифест предварительного кэша останется в файле output.path, это ./scripts/app/dist. Проблема заключается в том, что путь, указывающий на манифест в сгенерированном файле sw.js:

importScripts("precache-manifest.472387a6bbb5e3e8f5e8392d628202d5.js", "https://storage.googleapis.com/workbox-cdn/releases/3.1.0/workbox-sw.js");

Это указывает на то, где находится файл sw.js, который находится в корне сайта и не может быть найден. Это ошибка или что-то, что я неправильно настраиваю? Я попытался использовать importDirectory, но он просто переместил манифест в другое место, и путь к sw.js по-прежнему неверен.

UPDATE

У меня есть это в моем шаблоне рабочего сервиса:

workbox.skipWaiting();
workbox.clientsClaim();

workbox.precaching.precacheAndRoute([])

workbox.routing.registerRoute( .......

Но когда я собираю, массив не заполняется, и создается внешний манифест: Вот что создает плагин:

importScripts("precache-manifest.aa4b439ba2589f9d3cf0c56e1b06323d.js", "https://storage.googleapis.com/workbox-cdn/releases/3.1.0/workbox-sw.js");

workbox.skipWaiting();
workbox.clientsClaim();

workbox.precaching.precacheAndRoute([])

workbox.routing.registerRoute(
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...