我尝试在更新为angular 5之后将service worker添加到我的项目中并遇到一些问题.我将导入添加到app.module.ts:
import {ServiceWorkerModule} from '@angular/service-worker';
import {environment} from '../environments/environment';
...
environment.production ? ServiceWorkerModule.register('/ngsw-worker.js') : [],

执行$ng set apps.0.serviceWorker = true以允许项目中的服务工作者

生成配置:

{
  "index": "/index.html","assetGroups": [
    {
      "name": "app","installMode": "prefetch","resources": {
        "files": [
          "/index.html"
        ],"versionedFiles": [
          "/*.bundle.css","/*.bundle.js","/*.chunk.js"
        ]
      }
    },{
      "name": "assets","installMode": "lazy","updateMode": "prefetch","resources": {
        "files": [
          "/assets/**"
        ]
      }
    }
  ],"dataGroups": [
    {
      "name": "api-performance","urls": [
        "/","/main","/login","/select-content"
      ],"cacheConfig": {
        "strategy": "performance","maxSize": 100,"maxAge": "3d"
      }
    }
  ]
}

并表明:

{
  "name": "App","short_name": "App","start_url": "/login","theme_color": "#00a2e8","background_color": "#00a2e8","display": "standalone","icons": [
  {
   "src": "assets\/icons\/android-icon-36x36.png","sizes": "36x36","type": "image\/png","density": "0.75"
  },{
   "src": "assets\/icons\/android-icon-48x48.png","sizes": "48x48","density": "1.0"
  },{
   "src": "assets\/icons\/android-icon-72x72.png","sizes": "72x72","density": "1.5"
  },{
   "src": "assets\/icons\/android-icon-96x96.png","sizes": "96x96","density": "2.0"
  },{
   "src": "assets\/icons\/android-icon-144x144.png","sizes": "144x144","density": "3.0"
  },{
   "src": "assets\/icons\/android-icon-192x192.png","sizes": "192x192","density": "4.0"
  }
 ]
}

然后在生产中构建它:

ng build --prod --aot=false --build-optimizer=false

Http-server以SSL模式运行,但chrome dev-tools中的lsit服务工作者很清楚.怎么了?可能是这个标志打破了它–aot = false –build-optimizer = false?

在模块中注册服务工作者似乎是一个问题,同时也导入AngularFire2.我找到了如何在main.ts中注册SW的解决方案,这是有效的:
platformbrowserDynamic().bootstrapModule(AppModule).then(() => {
  if ('serviceWorker' in navigator && environment.production) {
    navigator.serviceWorker.register('ngsw-worker.js');
  }
}).catch(err => console.log(err));

angular5 – Angular 5 Service Worker无法正常工作的更多相关文章

  1. 使用Html5多媒体实现微信语音功能

    这篇文章主要介绍了使用Html5多媒体实现微信语音功能,需要的朋友可以参考下

  2. 浅谈移动端网页图片预加载方案

    这篇文章主要介绍了浅谈移动端网页图片预加载方案 的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. ios – 如何通过编程方式为UIButtons组设置单个背景图像

    解决方法要使用选择器数组以编程方式创建按钮,您可以使用以下代码片段://定义策略

  4. iOS启动图像文件类型

    我正在开发一个iPad应用并阅读thispage表示发布图像必须是PNG格式,但在他们的iOS人工指南中,/uploads/20230807/dfd8683904f6d24601aef1a1128c8fa9.png,而不是“必须”.我想使用.jpg格式作为我的发布图像,因为我在.png中的发布图像大小仅为2mb,而.jpg格式只有90kb.谢谢解决方法您需要在Info.plist中指定UILaunhImageFile字段设置此信息将使系统查找Default.jpg及其所有变体而不是.png例如,我正在编写

  5. ios – 删除自定义标签栏上的行

    我制作了一个自定义标签栏,其中一个延伸到栏外.有一条线与中心标签栏重叠.无论如何我可以摆脱这个或隐藏吗?要做到这一点,我只需设置标签栏图像:知道如何隐藏线路吗?谢谢解决方法如果我正确理解你的问题,问题是坐标栏顶部的1-2英寸像素阴影.如果是这种情况,您可以像导航栏一样删除阴影.只需启用剪辑即可.

  6. ios – 无法编辑屏幕截图,performChanges阻止失败

    我正在开发一个允许用户使用PhotoKit编辑照片的应用程序.我之前将编辑过的照片以JPEG格式保存到磁盘.我想避免转换为JPEG,并已实施修改,以便这样做.它适用于使用相机拍摄的照片,但如果您尝试编辑屏幕截图,PHPhotoLibrary.sharedPhotoLibrary().performChanges块将失败并记录操作无法完成.(可可错误-1.).我不确定为什么这会导致performCh

  7. ios – UIBarButtonItem更改播放/暂停按钮的图像

    如果我们两个人为什么不工作感到困惑,我认为这是Swift2/Xcode7beta的变化这样做:希望有所帮助!

  8. ios – 使用UIPasteBoard复制图像(Swift)

    我最近看到了这个项目,用户可以从自定义键盘上点击GIF,他们会看到一个“复制”的工具包.我有一个问题:>如何在产品GIF-Tutorial中重现此工具提示?任何人都可以给我一些示例代码来使用.我理解如何使用UIPasteboard及其功能,但是当我在这个函数中输入UTI类型“public.png”时,我似乎无法使它工作:解决方法尝试使用此代码:你可以找到这个如何工作here!希望这可以帮助

  9. ios – 一个项目中不同目标的不同Default.png文件

    我正在尝试在我的项目中设置第二个目标,但是当我将Default*.png文件拖动到目标的LaunchImages部分时,它会告诉我要从我的原始目标覆盖Default.png.我们如何为不同的目标添加不同的启动图像?在您回答之前,请谅解我不是在寻找如何将不同的一般文件或图像包含在不同的目标.我明白,当我将它们拖到目标窗格的“启动映像”部分时,我正在处理关于Default.png启动映像的问题.解决方法在每个项目的info.plist中,您将创建一个指向启动映像的UILaunchImageFile项.

  10. ios – libpng错误:CgBI:未处理的关键块xcode 7.3

    切换到Xcode7.3,并在同一个项目上运行项目后,我得到以下错误–我已将项目目标的构建设置中的压缩PNG文件设置为NO.我清理并重建了项目,但仍然没有工作,并给出了上述错误.欢迎提出任何解决上述问题的建议/帮助.提前致谢.解决方法除了在项目目标的构建设置中关闭压缩PNG文件标志.我还关闭了另一个标志,即从PNG文件中删除纹理元数据.这样做,解决了问题libpng错误:CgBI:Xcode7.3中

随机推荐

  1. Angular2 innerHtml删除样式

    我正在使用innerHtml并在我的cms中设置html,响应似乎没问题,如果我这样打印:{{poi.content}}它给了我正确的内容:``但是当我使用[innerHtml]=“poi.content”时,它会给我这个html:当我使用[innerHtml]时,有谁知道为什么它会剥离我的样式Angular2清理动态添加的HTML,样式,……

  2. 为Angular根组件/模块指定@Input()参数

    我有3个根组件,由根AppModule引导.你如何为其中一个组件指定@input()参数?也不由AppModalComponent获取:它是未定义的.据我所知,你不能将@input()传递给bootstraped组件.但您可以使用其他方法来做到这一点–将值作为属性传递.index.html:app.component.ts:

  3. angular-ui-bootstrap – 如何为angular ui-bootstrap tabs指令指定href参数

    我正在使用角度ui-bootstrap库,但我不知道如何为每个选项卡指定自定义href.在角度ui-bootstrap文档中,指定了一个可选参数select(),但我不知道如何使用它来自定义每个选项卡的链接另一种重新定义问题的方法是如何使用带有角度ui-bootstrap选项卡的路由我希望现在还不算太晚,但我今天遇到了同样的问题.你可以通过以下方式实现:1)在控制器中定义选项卡href:2)声明一个函数来改变控制器中的散列:3)使用以下标记:我不确定这是否是最好的方法,我很乐意听取别人的意见.

  4. 离子框架 – 标签内部的ng-click不起作用

    >为什么标签标签内的按钮不起作用?>但是标签外的按钮(登陆)工作正常,为什么?>请帮我解决这个问题.我需要在点击时做出回复按钮workingdemo解决方案就是不要为物品使用标签.而只是使用divHTML

  5. Angular 2:将值传递给路由数据解析

    我正在尝试编写一个DataResolver服务,允许Angular2路由器在初始化组件之前预加载数据.解析器需要调用不同的API端点来获取适合于正在加载的路由的数据.我正在构建一个通用解析器,而不是为我的许多组件中的每个组件设置一个解析器.因此,我想在路由定义中传递指向正确端点的自定义输入.例如,考虑以下路线:app.routes.ts在第一个实例中,解析器需要调用/path/to/resourc

  6. angularjs – 解释ngModel管道,解析器,格式化程序,viewChangeListeners和$watchers的顺序

    换句话说:如果在模型更新之前触发了“ng-change”,我可以理解,但是我很难理解在更新模型之后以及在完成填充更改之前触发函数绑定属性.如果您读到这里:祝贺并感谢您的耐心等待!

  7. 角度5模板形式检测形式有效性状态的变化

    为了拥有一个可以监听其包含的表单的有效性状态的变化的组件并执行某些组件的方法,是reactiveforms的方法吗?

  8. Angular 2 CSV文件下载

    我在springboot应用程序中有我的后端,从那里我返回一个.csv文件WheniamhittingtheURLinbrowsercsvfileisgettingdownloaded.现在我试图从我的角度2应用程序中点击此URL,代码是这样的:零件:服务:我正在下载文件,但它像ActuallyitshouldbeBook.csv请指导我缺少的东西.有一种解决方法,但您需要创建一个页面上的元

  9. angularjs – Angular UI-Grid:过滤后如何获取总项数

    提前致谢:)你应该避免使用jQuery并与API进行交互.首先需要在网格创建事件中保存对API的引用.您应该已经知道总行数.您可以使用以下命令获取可见/已过滤行数:要么您可以使用以下命令获取所选行的数量:

  10. angularjs – 迁移gulp进程以包含typescript

    或者我应该使用tsc作为我的主要构建工具,让它解决依赖关系,创建映射文件并制作捆绑包?

返回
顶部