use*_*570 8 progressive-web-apps angular angular-service-worker
使用角度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/**"
]
}
}]
Run Code Online (Sandbox Code Playgroud)
}
我的app.module.ts使用
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })
Run Code Online (Sandbox Code Playgroud)
我正在使用vanilla environment.ts和environment.prod.ts
main.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));
Run Code Online (Sandbox Code Playgroud)
不知道还有什么要检查
kkl*_*zak 12
您是否serviceWorker在apps第一次进入时添加了属性.angular-cli.json?如果没有,angular-cli没有构建它.
"apps": [
{
...
"serviceWorker": true
}
}
Run Code Online (Sandbox Code Playgroud)
编辑截至2018年12月, .angular-cli.json现在是 angular.json,现在是 serviceWorker的格式:
{
...
"projects": {
"my-project-name": {
"architect": {
"build": {
"configurations": {
"production": {
"serviceWorker": true
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您需要为您希望服务工作者的每个配置指定serviceWorker:true.
我有同样的问题.事实证明我使用的是旧包装
"@angular-devkit/build-angular": "~0.6.6"
Run Code Online (Sandbox Code Playgroud)
这应该是
"@angular-devkit/build-angular": "~0.10.0",
Run Code Online (Sandbox Code Playgroud)
在此之后,复制服务工作者
还要确保使用最新的Angular 7和Lateset Angular CLI
经过长时间的搜索,我们发现构建中缺少的 --prod 标志导致了问题。正是这个产生了 service-worker 文件,并且没有额外的构建标志能够做到这一点(与 uglifying 相同,uglifyer 是我们之前将 --build 标志与 --env=build 交换的原因)。有关 --build 标志发生的情况的更多信息,请参见此处:Angular 2 with CLI - build for production。
| 归档时间: |
|
| 查看次数: |
5070 次 |
| 最近记录: |