Webpack и сервисный работник скопированы в корневую папку - PullRequest
0 голосов
/ 21 января 2019

Я работаю с сервисным работником, который будет перехватывать все запросы браузера, а затем выполняет какие-то действия.

Я пытаюсь перехватить запрос, который находится в 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 '/'
},

, но это больше не копирует файл.

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

...