"Error: Loading Chunk X failed" when accessing some lazy-loaded route modules in Angular 8 on IOS only

"Error: Loading Chunk X failed" when accessing some lazy-loaded route modules in Angular 8 on IOS only

问题描述

在我们的 Angular 8 项目中,一些路由是使用以下语法延迟加载的

{
  path: "/bread",
  loadChildren: () => import('./bread/bread.module')
   .then(m => m.BreadModule)
}

所有路由在几乎所有桌面和 Android 设备浏览器(包括 macOS Safari)中都运行良好(下面是经过测试的工作环境列表),但是 一些延迟加载的路由在 IOS 设备 上测试时失败。尝试访问这些路由时,无论是通过编程方式还是通过手动设置浏览器的 URL,控制台上都会显示以下错误:

ERROR ERROR Error: Uncaught (in promise): Error: Loading chunk 5 failed.
(missing: https://192.168.220.128/ui/5.962e65be9c4b000c89f6.js)
a@https://192.168.220.128/ui/runtime.b5d7c083c76af74c6510.js:1:1269
P@https://192.168.220.128/ui/polyfills.27aa9b55940b8e5475a1.js:1:18520
onInvokeTask@https://192.168.220.128/ui/main.1b4a84881faf77e4effa.js:1:144508
https://192.168.220.128/ui/polyfills.27aa9b55940b8e5475a1.js:1:3483
https://192.168.220.128/ui/polyfills.27aa9b55940b8e5475a1.js:1:9381
y@https://192.168.220.128/ui/polyfills.27aa9b55940b8e5475a1.js:1:22586
_@https://192.168.220.128/ui/polyfills.27aa9b55940b8e5475a1.js:1:22811

尝试过的解决方案

以下是我们尝试过但没有成功的解决方案列表:

由于某些限制,我们t/couldn没有try/implement一些解决方案

工作环境

失败的环境

一些files/logs可能有帮助

找到解决办法了,是我之前写的一段代码,macOS不支持,就是RegExp中的Positive Lookahead和Lookbehind。