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 })
バニラの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));
他に何をチェックすべきかわからない
serviceWorker
プロパティを.angular-cli.json
の最初のエントリapps
に追加しますか?そうでない場合、angular-cliはそれを構築しませんでした。
"apps": [
{
...
"serviceWorker": true
}
}
[〜#〜] edit [〜#〜] 2018年12月現在、。angular-cli。 jsonがangular.jsonになり、serviceWorkerの形式は次のようになります。
{
...
"projects": {
"my-project-name": {
"architect": {
"build": {
"configurations": {
"production": {
"serviceWorker": true
}
}
}
}
}
}
Service Workerを必要とするすべての構成でserviceWorker:trueを指定する必要があります。
私も同じ問題を抱えていました。古いパッケージを使用していたことが判明
"@angular-devkit/build-angular": "~0.6.6"
これは
"@angular-devkit/build-angular": "~0.10.0",
この後、サービスワーカーがコピーされます
また、最新のAngular 7およびlateset Angular CLI
私のapp.module.tsにスペースがないようです
私が持っていました:environment.production? ServiceWorkerModule.register( '/ ngsw-worker.js'):[]
変更:environment.production? ServiceWorkerModule.register( '/ ngsw-worker.js'):[]
長い検索の結果、ビルドに欠落している--prodフラグが問題を引き起こしていることがわかりました。正確にこれはサービスワーカーファイルを生成し、追加のビルドフラグはそれを実行できません(uglifyingと同じで、以前に--env = buildに対して--buildフラグを交換した理由はuglifyerでした)。ここにある--buildフラグで何が起こるかについての詳細情報: CLIを使用したAngular 2-本番用のビルド 。