Я работаю с сервисным работником, который будет перехватывать все запросы браузера, а затем выполняет какие-то действия.
Я пытаюсь перехватить запрос, который находится в mysite.com/*
, но я скопировал мой сервисный работникфайл с помощью веб-пакета в сконфигурированный выходной путь, который является public/build/
.Мой сервисный работник только перехватывает запрос, который находится внутри /build/*
.cf: https://stackoverflow.com/a/48792264/4487542
Итак, мой вопрос: как я могу скопировать моего сервисного работника в корневую папку моего проекта, а затем зарегистрировать его из моих файлов JS, чтобы перехватить весь запрос от mysite.com/foo
На самом деле моя конфигурация webpack, я использую Webpack Encore
.setOutputPath('public/build/')
.setPublicPath('/build')
.copyFiles([
{
from: './assets/js/worker',
pattern: /(request_interceptor.js)$/u,
},
])
Если я изменяю свой публичный путь, тогда мне нужно изменить каждый импорт ресурсов внутри моего кода, и если я изменю свой outputPath, мне нужно удалить .cleanupOutputBeforeBuild()
метод, который очищает все мои файлы встроенных активов.
Я пытался использовать
{
from: './assets/js/worker',
pattern: /(request_interceptor.js)$/u,
to: '', // or with '/'
},
, но это больше не копирует файл.
Я совершенно новыйс работниками сферы обслуживания, возможно, я неправильно понимаю, как это работает.