我正在与一名服务人员合作,该服务人员将拦截所有浏览器请求,然后执行一些操作。
我正在尝试拦截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 '/'
},
但这不会再复制文件。
我对服务人员很陌生,可能是我误会了它的工作原理。