javascript - 如何使用 Webpack 5 加载服务工作者?
问题描述
我正在使用 Webpack 5,我希望有一个 Service Worker,它将拦截获取请求并在本地返回响应而不会访问网络。我还希望能够在 Service Worker 中导入 npm 模块。为此,我曾经使用一个名为serviceworker-webpack-plugin的库,但它不再维护(并且在我使用它时会引发错误)。Webpack 文档建议使用 Workbox,但据我所知,这似乎只是为了在 Service Worker 中缓存资产。有人能告诉我 2020 年使用 Webpack 5 创建 Service Worker 的正确方法是什么吗?
解决方案
将 service worker 添加到您的 webpack.config.js 条目字段
entry: {
'app': "./src/index.js",
'service-worker': "./src/service-worker.ts",
},
output: {
filename: "[name].js",
},
这将发出dist/app.js
and dist/service-worker.js
,并且可以在两者中导入东西。
serviceworker-webpack-plugin
还为 serviceworker 提供了一种查看它应该缓存的所有捆绑文件列表的方法,但是该功能不能直接使用,需要制作 webpack 插件才能获取。
推荐阅读
- angular - 如何使用 Observable 每 1 秒(Angular 5)从数组中发出每个值?
- gremlin - 按边缘属性中的重合数对结果进行排序
- deployment - Netlify 不支持通配符子域
- java - 如何将字符串数组和字符串返回到多重拼写数组?
- javascript - 如何使 vuetify v-stepper 标头动态完成?
- reactjs - 为什么我的显示与 react-bootstrap 示例不同?
- git - HEAD 分离分支 git
- c++ - 有什么方法可以正确显示我的 isbn 代码?
- linux - 如何在目标文件中的 EOF 之前将源文件中的文本附加到目标文件中
- laravel - Composer 安装失败 Digitalocean 虚拟主机