Angular 2.错误:加载块失败

新手上路,请多包涵

使用带有延迟加载模块的角度 2,我可以从服务器接收(例如)401 HTTP 代码

引导程序 0b40fee…:101 GET http://localhost:80822.chunk.js

 Error: Loading chunk 2 failed.
at HTMLScriptElement.onScriptComplete (bootstrap 0b40fee…:91)
at HTMLScriptElement.wrapFn (zone.js:1032)
at ZoneDelegate.invokeTask (zone.js:414)
at Object.onInvokeTask (core.es5.js:4119)
at ZoneDelegate.invokeTask (zone.js:413)
at Zone.runTask (zone.js:181)
at HTMLScriptElement.ZoneTask.invoke (zone.js:476)

如何处理这个错误?

原文由 smie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 250
1 个回答

查看 我的答案 以获取详细信息

  • 绕过此块失败错误的解决方法 => 如果使用 global error handler 发生块失败错误,则以编程方式强制应用程序重新加载。

 import { ErrorHandler } from '@angular/core';

@Injectable()
export class GlobalErrorHandler implements ErrorHandler {

  handleError(error: any): void {
   const chunkFailedMessage = /Loading chunk [\d]+ failed/;

    if (chunkFailedMessage.test(err.message)) {
      window.location.reload();
    }
  }
}

  • 在我们的根模块中提供它以更改我们应用程序中的默认行为,因此我们使用自定义的 GlobalErrorHandler 类而不是使用默认的 ErrorHandler 类。

 @NgModule({
  providers: [{provide: ErrorHandler, useClass: GlobalErrorHandler}]
})

原文由 Khaled Lela 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题