Webpack和服务工作者已复制到根文件夹

时间:2019-01-21 14:02:32

标签: javascript webpack service-worker webpack-encore

我正在与一名服务人员合作,该服务人员将拦截所有浏览器请求,然后执行一些操作。

我正在尝试拦截mysite.com/*中的请求,但是我已使用webpack将服务工作者文件复制到配置的输出路径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 '/'
},

但这不会再复制文件。

我对服务人员很陌生,可能是我误会了它的工作原理。

0 个答案:

没有答案