更新后,Angular 6/7服务人员无法加载延迟加载的模块,意外令牌<

时间:2018-10-23 13:51:36

标签: angular routing lazy-loading service-worker

在我当前的角度项目中,服务工作者中的延迟加载模块似乎存在问题。但是我看不出有什么问题。即使在更新或删除服务工作者之后,在下一次更新时,问题仍然会再次出现。

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.htmlmain.*.js等具有 installMode prefetch

感谢您的帮助,欢呼!

0 个答案:

没有答案