angular - 如何在 Ngsw 中处理自定义代码 - 在 Fetch 事件中
问题描述
我在 angular.js 应用程序中实现了服务工作者,我们在其中编写了一些自定义代码self.addEventListener('fetch', function (event)
。现在我计划将应用程序迁移到 Angular,我发现在 Angular 中我们有一个特殊的插件,它将执行所有配置和缓存清理。 "@angular/service-worker": "~10.0.6",
.
现在我很难在 fetch 事件中实现自定义代码以集成到角度版本中。有什么方法可以让 fetch 方法覆盖到组件中并从那里执行操作。
解决方案
根据您的消息,这些步骤是使用angular-cli@10.0.6完成的。
编辑服务工作人员文件。
- 打开文件
<project_name>/node_modules/@angular/service-worker/ngsw-worker.js
- 搜索
handleFetch function
第 1121 行。 - 编辑根据您的要求调整该功能。查看
handleFetchWithFreshness
并handleFetchWithPerformance
作为示例。 - 节省
补丁文件
- 使用patch-package保存补丁。
npx patch-package @angular/service-worker
- 做出承诺。
- 添加
postinstall script
到package.json
"scripts": {
"postinstall": "patch-package"
}
- 添加
patch-package
包npm install --save-dev patch-package
测试服务人员
- 构建。
- 启动 dist 文件的服务器。
- 它应该有效。
推荐阅读
- ubuntu - 在 ubuntu 18.04 上安装 samba 时出错
- c++ - Foreach 循环和箭头/点运算符的区别?
- c# - Angular 4 Http Post 未命中 DotNet Core 2.0 API 控制器中的 API Post 方法
- c++ - 具有内部链接的命名空间
- vala - 更新到 0.44 后,具有静态结构的 Vala 代码不起作用
- json - 如何使用字典发布 JSON 对象?
- c# - 将数据网格导出为txt文件时如何自定义格式?
- apache-camel - Apache Camel - 创建自定义组件/端点?
- programming-languages - 多语言圣经应用程序的编程语言是什么?
- python-3.x - 通过python从字符串中查找`0000`的所有位置