angular - 运行 build --prod 时没有生成服务 worker 文件 ngsw.json/ngsw-worker.json。 Angular 5

标签 angular progressive-web-apps angular-service-worker

使用 Angular 5.1.2 Angular-cli 1.6.3

所有文件都非常普通。 dist 文件夹已创建

我的 ngsw-config.json

{
"index": "/index.html",
"assetGroups": [
    {
        "name": "app",
        "installMode": "prefetch",
        "resources": {
            "files": [
                "/favicon.ico",
                "/index.html"
            ],
            "versionedFiles": [
                "/*.bundle.css",
                "/*.bundle.js",
                "/*.chunk.js"
            ]
        }
    },
    {
        "name": "assets",
        "installMode": "lazy",
        "updateMode": "prefetch",
        "resources": {
            "files": [
                "/assets/**"
            ]
        }
    }]   

我的 app.module.ts 使用

  ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })

我正在使用 vanilla environment.ts 和 environment.prod.ts

主要.ts

import './polyfills.ts';
import {enableProdMode} from '@angular/core';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';

import {AppModule} from './app/app.module';
import {environment} from './environments/environment';

if (environment.production) {
enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
.then(() => {
if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('ngsw-worker.js');
}

})
.catch(err => console.log(err));

不确定还有什么要检查

最佳答案

您是否将 serviceWorker 属性添加到 .angular-cli.json 中的 apps 第一个条目?如果没有,则 angular-cli 不会构建它。

"apps": [
  {
    ...
    "serviceWorker": true
  }
}

编辑截至 2018 年 12 月,.angular-cli.json 现在是 angular.json,并且serviceWorker 的格式现在是:

{
    ...
    "projects": {
         "my-project-name": {
             "architect": {
                 "build": {
                     "configurations": {
                        "production": {
                           "serviceWorker": true
                        }
                     }
                 }
             }
         }
    }

您需要为每个需要 service worker 的配置指定 serviceWorker: true。

关于angular - 运行 build --prod 时没有生成服务 worker 文件 ngsw.json/ngsw-worker.json。 Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48101566/

相关文章:

javascript - Reactjs PWA初始屏幕无法在iOS上运行

Angular Service Worker 未在开发模式下注册

java - 部署在 tomcat 上时,Angular Service Worker 离线支持不起作用

angular - 在ubuntu中安装@angular/cli时出现错误

angular - 如何在 Angular 2 中使用分页重新加载页面?

http请求完全加载后的 Angular 动画

javascript - clearvalidators 在 Angular 6 形式控件中不起作用

service-worker - 离线时如何从登录页面开始使用渐进式网络应用程序

firebase-cloud-messaging - 无法让 click_action 使用 Web 应用程序/PWA 处理 FCM 通知

angular - 从组件( Angular )检查 Service Worker 安装进度