使用 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/