如何使用 webpack encore 设置 service worker?
How to set service worker with webpack encore?
关于一切都在标题中,我想知道如何使用 Webpack Encore 设置我的 service worker。
我尝试在 webpack.config.js
中使用 .addEntry('sw', './assets/js/sw.js')
,但是,
navigator.serviceWorker.register("/build/sw.js")
在开发环境中工作时,
prod 中的编译文件已重命名为 /build/sw.8346cedc.js
,不再匹配调用。
我应该怎么做才能呼叫我的服务人员?
您可以使用 {{ encore_entry_js_files('sw') }}
twig 函数获取 service worker 脚本路径。
在 html 中创建一个全局变量,如下所示。
<script>
var swPath = "{{ encore_entry_js_files('sw') | first }}";
</script>
如果您的 webpack.config.js 具有 .splitEntryChunks()
功能,您仍然会遇到麻烦,因为 runtime.js 将被分离。
关于一切都在标题中,我想知道如何使用 Webpack Encore 设置我的 service worker。
我尝试在 webpack.config.js
中使用 .addEntry('sw', './assets/js/sw.js')
,但是,
navigator.serviceWorker.register("/build/sw.js")
在开发环境中工作时,
prod 中的编译文件已重命名为 /build/sw.8346cedc.js
,不再匹配调用。
我应该怎么做才能呼叫我的服务人员?
您可以使用 {{ encore_entry_js_files('sw') }}
twig 函数获取 service worker 脚本路径。
在 html 中创建一个全局变量,如下所示。
<script>
var swPath = "{{ encore_entry_js_files('sw') | first }}";
</script>
如果您的 webpack.config.js 具有 .splitEntryChunks()
功能,您仍然会遇到麻烦,因为 runtime.js 将被分离。