在我当前的角度项目中,服务工作者中的延迟加载模块似乎存在问题。但是我看不出有什么问题。即使在更新或删除服务工作者之后,在下一次更新时,问题仍然会再次出现。
5.xxx.js
未捕获到的SyntaxError:意外令牌<< / p>
main.xxx.js
错误:未捕获(承诺):错误:加载块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
。
感谢您的帮助,欢呼!