微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Ngsw 中处理自定义代码 - 在 Fetch 事件中

如何解决如何在 Ngsw 中处理自定义代码 - 在 Fetch 事件中

我在 angular.js 应用程序中实现了 Service Worker,其中我们有一些用 self.addEventListener('fetch',function (event) 编写的自定义代码。现在我计划将应用程序迁移到 angular,我发现在 angular 中我们有一个特殊的插件,可以完成所有配置和缓存清理。 "@angular/service-worker": "~10.0.6",

现在我很难在 fetch 事件中实现自定义代码以集成到 angular 版本中。有什么方法可以让我们将 fetch 方法覆盖到组件中并从那里执行操作。

解决方法

根据您的消息,这些步骤是使用 angular-cli@10.0.6 完成的。

编辑 Service Worker 文件。

  • 打开文件<project_name>/node_modules/@angular/service-worker/ngsw-worker.js
  • 搜索 handleFetch function 行 1121。
  • 编辑根据您的要求调整该功能。以 handleFetchWithFreshnesshandleFetchWithPerformance 为例。
  • 保存

补丁文件

  • 使用 patch-package 保存补丁。npx patch-package @angular/service-worker
  • 提交。
  • postinstall script 添加到 package.json
"scripts": {
 "postinstall": "patch-package"
}
  • 添加 patch-packagenpm install --save-dev patch-package

测试服务工作者

  • ng 构建。
  • 启动一个 dist 文件服务器。
  • 它应该可以工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。