首页 > 解决方案 > Angular 9.x 应用程序无法在 IE11 中加载

问题描述

最近我们发现 Internet Explorer(IE10、IE11)不再加载我们的 Angular v9.x 应用程序。几个月前它正在引导和加载应用程序,并通过守卫将使用 IE10 或 IE11 的用户重定向到不受支持的视图,提供有关如何升级到常绿浏览器(Chrome、Edge、Firefox 等)的信息。

由于某种原因,最近它似乎并没有引导应用程序,而是您只是无休止地盯着<app-root>标签之间的徽标。使用 Windows 10 的 IE11 没有错误,所以我没有什么要调试的。

当涉及到此类问题时,我已经解决了通常的嫌疑人(见下文),并且还查看了 stackoverflow 中的多个帖子,例如linklink,以及引用的linklink。我对没有错误感到困惑,好像 Angular 不存在,但我可以看到 JS 文件被拉下(runtime.js、polyfills.js、styles.js、scripts.js、vendor.js、和 main.js)。

  1. 填充物
import 'classlist.js';
import 'web-animations-js';
import 'core-js';
  1. 浏览器列表
> 0.5%
last 2 versions
Firefox ESR
not dead
IE 9-11 # For IE 9-11 support, remove 'not'.
  1. ES5 tsconfig
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "target": "es5"
  },
  "include": [
    "src/**/*.d.ts"
  ]
}
  1. 运行快速检查:

npx es-check es5 './dist/**/*es5*.js' './dist/**/scripts.*.js' --verbose

  1. 在本地运行生产构建文件并获得相同的结果:

cd ./dist/PROJEC_NAME && npx local-web-server

这是我讨厌问的问题之一,特别是因为它无处不在,但我花了很长时间试图弄清楚为什么我们的应用程序停止在 IE11 中运行,并且已经用尽了我的知识和研究。有没有人有什么建议?

标签: angularinternet-explorer-11

解决方案


由于我们在技术上不支持 IE10 和 IE11,但试图阻止使用 IE10 和 IE11,我们决定采取更严格的方法并将内容拆分到位于其中的静态 HTML 页面,该页面/assets使用脚本index.html加载检测不支持的浏览器。这也意味着我们可以放弃我们的 polyfill。


推荐阅读