我从未能够正确地使用Angular Mobile Team的服务工作者,现在我猜我忘记了启用某些内容,因为自从最初发布以来它从未正常工作过。即使它安装并在Google Chrome(智能手机和桌面电脑)上运行,但当我离线时它就无法工作了,而且还会在更新后随机崩溃。
没有关于如何设置它的文档。所以这是我如何做到的:
当我将Chrome开发者工具选项设置为
没有关于如何设置它的文档。所以这是我如何做到的:
ng new test-service-worker
新建一个名为test-service-worker的Angular项目npm install @angular/service-worker
安装@angular/service-worker模块- 在
.angular-cli.json
中添加"serviceWorker": true
,启用Service Worker功能 npm build --prod
编译项目并生成ngsw-manifest.json
,sw-register.b73048fe3d9f8a1e7ae5.bundle.j
s和worker-basic.min.js
等文件,一切看起来都很正常- https://test-service-worker-97321.firebaseapp.com/ Service Worker安装成功
- 如果我断网,等待一个小时以使缓存过期(或者直接禁用缓存),无论使用哪种设备,都会出现
failed to load
错误。
生成的dist
目录:
生成的 ngsw-manifest.json
文件:
服务工作线程已安装并运行: 测试可用https://test-service-worker-97321.firebaseapp.com/
当我将Chrome开发者工具选项设置为
离线
和禁用缓存
时,Service Worker不再加载内容。Twitter是一个很好的例子,他们的Web应用程序在选中离线
和禁用缓存
时仍然能够正常工作。
NB: 我以前使用服务工作者创建过几个应用程序,并且它们在Chrome上正常运行。我不知道我在这里做错了什么。