Angular 6.1.2 PWA 不工作

标签 angular progressive-web-apps

我尝试了互联网上所有关于如何将 PWA 添加到 Angular 项目的解决方案,但仍然在 Chrome Dev Tools 中,没有注册服务 worker 。

我确实运行了 ng add @angular/pwa,使用 ng build --prodhttp-server -o 仍然没有服务 worker 注册。它也没有添加 @angular/service-worker 包,也没有 Manifest.json 文件,就像它应该在整个互联网上显示的那样。

我还尝试使用预装了 ng new myProject --service-worker 的 PWA 创建一个新项目,但同样无法正常工作。

我什至试过像下面这样注册服务:

if(导航器中的'serviceWorker'){ window.addEventListener('load', function() { navigator.serviceWorker.register('/service-worker.js'); });

旁注:当我运行 ng add @angular/pwa 时,我收到一条消息“Path '/ngsw-config.json' already exist”,所以我发现该文件位于 < em>@schematics 包。该脚本只添加了一个 @angular/pwa 包,它与 Angular PWA 文档无关。


这是我的环境:

Angular 6.1.2
Angular CLI: 6.1.3
Node 8.11.3
NPM  5.6.0

我需要做什么才能获得普通的 PWA Angular 项目?

最佳答案

这是新版本的@angular/pwa包,有一些bug。所以运行 ng add @angular/pwa@0.6.8 非常适合我。

在本地测试 Service Worker:如果您将 Firebase 添加到您的项目(托管),您可以运行 ng build --prod,然后运行 ​​firebase serve。当你没有 Firebase 时,你可以运行 ng build --prod,cd 到 dist 文件夹(取决于你的配置)然后运行 ​​http-server -o .如果您没有 http-server 模块,请通过运行 npm i -g http-server

安装它

关于Angular 6.1.2 PWA 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51867392/

相关文章:

javascript - 如何使用gapi在Angular 9中发送电子邮件

angular - 413 IIS 请求实体太大

angular - npm 安装后找不到模块 "@angular-devkit/build-angular"

Angular:升级到版本 5 错误:@angular/compiler-cli 的版本需要为 2.3.1 或更高版本。当前版本是 "5.0.0"

javascript - 拖放 - 如何在 dragstart 事件和 drop 事件中获取实际的 html

google-chrome - Chrome 开发者工具 "disable cache": what does it actually do apart from nothing (for service worker scripts)?

cordova - iOS 11.3 中 PWA 无推送通知限制的解决方法?

android - 隐藏顶部状态栏但保留底部导航栏

javascript - 覆盖 @angular/pwa ngsw-worker.js

caching - PWA 最佳实践 : Web or Local Fonts?