Javascript 如何使用网页包encore设置服务人员?

Javascript 如何使用网页包encore设置服务人员?,javascript,symfony,webpack,service-worker,webpack-encore,Javascript,Symfony,Webpack,Service Worker,Webpack Encore,关于标题中的所有内容,我想知道如何使用网页包Encore设置我的服务人员 我试图在webpack.config.js中使用.addEntry('sw','./assets/js/sw.js'),但是, 当navigator.serviceworner.register(“/build/sw.js”)在dev env中工作时, prod中编译的文件被重命名为/build/sw.8346cedc.js,这与调用不再匹配 我应该怎么做才能调用我的服务人员?您可以使用{{encore\u entry\u

关于标题中的所有内容,我想知道如何使用网页包Encore设置我的服务人员

我试图在
webpack.config.js
中使用
.addEntry('sw','./assets/js/sw.js')
,但是,
navigator.serviceworner.register(“/build/sw.js”)
在dev env中工作时,
prod中编译的文件被重命名为
/build/sw.8346cedc.js
,这与调用不再匹配


我应该怎么做才能调用我的服务人员?

您可以使用
{{encore\u entry\u js\u files('sw')}
twig函数获取服务人员脚本路径

在html中创建一个全局变量,如下所示

<script>
var swPath = "{{ encore_entry_js_files('sw') | first }}";
</script>

var swPath=“{{encore_entry_js_files('sw')|first}}”;

如果你的webpack.config.js有
.splitEntryChunks()
函数,你仍然会遇到麻烦,因为runtime.js将被分离。

啊,所以
.splitEntryChunks()
是我的问题。。。谢谢,这很有帮助