javascript - 如何使用 webpack encore 设置服务工作者?
问题描述
关于标题中的所有内容,我想知道如何使用 Webpack Encore 设置我的服务工作者。
我尝试使用.addEntry('sw', './assets/js/sw.js')
inside webpack.config.js
,但是,
在navigator.serviceWorker.register("/build/sw.js")
dev env 中工作时,
prod 中的编译文件被重命名/build/sw.8346cedc.js
,这与调用不再匹配。
我应该怎么做才能打电话给我的服务人员?
解决方案
{{ encore_entry_js_files('sw') }}
您可以使用twig 函数获取服务工作者脚本路径。
在 html 中创建一个全局变量,如下所示。
<script>
var swPath = "{{ encore_entry_js_files('sw') | first }}";
</script>
如果您的 webpack.config.js 具有.splitEntryChunks()
功能,您仍然会遇到麻烦,因为 runtime.js 将被分离。
推荐阅读
- javascript - 带有绝对路径的故事书
- ssl - Xamarin - Android - 手动验证服务器的 SSL 证书 ModernHttpClient
- matlab - 只希望 Matlab 中 pca 的分数和潜在值以节省内存
- sql - ORA-01795: 列表中的最大表达式数为 1000 错误
- java - 在java中将对象作为Json返回
- bitcoin - 电子钱包未加载私钥的交易
- bash - 期望多次通过和多个主机
- python - 帧在 Tkinter 中是否具有单独的帧位置?
- javascript - HTML CSS JS Wave 绘制和动画
- c# - C# (dotnet core) 关联失败。GKE 上的入口 (GLBC) 负载均衡器背后