В моем текущем угловом проекте, кажется, есть проблема с лениво загруженными модулями в сервисном работнике.Но я не вижу, что с ним не так.Даже после обновления или удаления работника службы при следующем обновлении проблема снова появляется.
5.xxx.js
Uncaught SyntaxError: Неожиданный токен <</p>
main.xxx.js
Ошибка: Uncaught (в обещании): Ошибка: загрузка чанка 5 не удалась.(отсутствует: https://myUrl.com/5.c4a41f82a61c11f9205b.js) Ошибка: не удалось загрузить чанк 5.
Настройка
Мои маршруты настроены следующим образом, модули с предзагрузочной стратегией работают правильнопри обновлении.
const routes: Route[] = [
{ path: '', component: DashboardComponent },
{ path: 'projects', loadChildren: '../modules/projects/projects.module#ProjectsModule', data: {preload: true} },
{
path: 'admin',
loadChildren: '../modules/admin/admin.module#AdminModule',
canLoad: [AdminGuardService]
},
{ path: '**', redirectTo: '' }
];
5.xxx.js - это наверняка компиляция admin.module. Стратегия предварительной загрузки определяется как
import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';
export class AppPreloadStrategy implements
PreloadingStrategy {
preload(route: Route, load: Function): Observable<any> {
return route.data && route.data.preload ? load() : of(null);
}
}
Я почти уверен, что это не такне связан с предварительной нагрузкой, но связан с работником службы.
Мой работник службы (упрощенно) настроен как
{
"name": "modules",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/?.*.js",
"/??.*.js"
]
}
}
как assetGroup. Также есть приложение assetGroup с index.html
, main.*.js
и т. д. installMode prefetch
.
Спасибо за помощь, ура!