У меня есть PWA в Angular 8. Я добавил $ ng add @angular/pwa
, и функциональность PWA, кажется, работает, примите эту проблему: когда я выпускаю sh новую сборку в производство, приложение не обновлено в браузерах пользователей (протестировано на Chrome и мобильном Safari).
Вместо этого, когда пользователь открывает свой браузер для go приложения, он / она увидит предыдущую (не обновленную) версию приложения, которая ранее была в его браузере.
Они увидят более новую версию, только если они обновят sh страницу. Ошибки не отображаются.
Я выполняю sh до производства, используя $ ng build --prod
, а затем вставляю сборку в AWS Amplify.
Приложение всегда должно обновляться до новейшей сборки, когда пользователь открывает его в браузере. Этого не происходит.
Я видел обсуждение этого вопроса о переполнении стека в последние несколько лет, например здесь и здесь . Но эти вопросы не получили ответов, и даны советы по внедрению обходных путей.
Какое решение этой проблемы?
В моем случае приложение находится в процессе многократно повторяется, и это тянет много местных активов. Таким образом, пользователь, все еще видящий сборку по прошествии недели go, является серьезной проблемой. Я надеюсь, что это не ожидаемое поведение - b c, который является большим недостатком функциональности PWA, если он есть.
В Angular документах есть некоторое обсуждение «updateMode», но мне кажется, что мои настройки уже установлены для правильной работы, но проблема остается. Вот мой ngsw-config. json:
{
"$schema": "./node_modules/@angular/service-worker/config/schema.json",
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/manifest.webmanifest",
"/*.css",
"/*.js"
]
}
}, {
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
]
}
}
]
}