首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让Angular 8兼容IE11?

如何让Angular 8兼容IE11?
EN

Stack Overflow用户
提问于 2019-06-12 21:45:49
回答 4查看 16.1K关注 0票数 14

我使用ng update升级到了Angular 8。它运行自己的迁移脚本,这些脚本(其中包括)删除了polyfills.ts中的es6/es7导入。据我所知,Angular将为较旧的浏览器(包括IE11)创建一个特殊的构建,我再也不用担心polyfills了?我将browserlist更新为not IE 9-10,而不是not IE 9-11,以(我假设)提示它应该构建适当的polyfills。

不幸的是,在运行ng build之后,我得到了一些与polyfill相关的错误,例如。Reflect.getMetadata is not a functionObject doesn't support property or method 'includes'。我尝试将reflectarray导入放回polyfills中,并跳过这些错误,但我遇到了其他错误。怎么回事?我是否应该包括多边形填充?

如何让Angular 8与IE11协同工作?

EN

回答 4

Stack Overflow用户

发布于 2019-06-20 22:45:32

让IE 11与Angular 8一起工作的一种方法是禁用differential work

执行以下操作:

使用带有import 'core-js'; // core-js@^3.1.4"target": "es5"

  • Update

  • 更新tsconfig.json polyfills.ts
票数 11
EN

Stack Overflow用户

发布于 2019-06-25 23:55:07

如果你想在IE11等ES5浏览器以及Chrome和火狐等现代ES2015+浏览器上运行你的应用程序,可以在你的angular.json中添加额外的构建配置来支持你的应用程序的ES5捆绑包。

  1. 将新的"es5“配置添加到angular.json的architect部分:

代码语言:javascript
运行
复制
{
  "projects": {
    "my-app": {
      "architect": {
        "build": {
          "configurations": {
            "es5" : {
              "tsConfig": "tsconfig.app.es5.json"
            }
          }
        },
        "serve": {
          "configurations": {
            "es5": {
              "browserTarget": "my-app:build:es5"
}}}}}}}

angular.json一起创建

  1. tsconfig.app.es5.json

代码语言:javascript
运行
复制
{
    "extends": "./tsconfig.app.json",
    "compilerOptions": {
        "target": "es5"
    }
}

  1. 更新browserslist以启用IE 11支持。确保browserslist位于应用程序的根目录中,与angular.json文件并列。例如:

代码语言:javascript
运行
复制
not IE 9-10 # For IE 9-11 support, remove 'not'.
IE 11

  1. 将新的启动脚本添加到package.json,以使用您在步骤1:

中创建的ES5配置

代码语言:javascript
运行
复制
"scripts": {
  "build": "ng build",
  "buildES5": "ng build --configuration=es5",
  "start": "ng serve",
  "startES5": "ng serve --configuration=es5",
}

现在,您可以为仅支持ES5的传统浏览器或支持ES2015+的现代浏览器构建和提供应用程序:

  • npm run build针对现代browsers
  • npm run buildES5构建您的应用程序,针对传统browsers
  • npm run start构建您的应用程序,并针对现代browsers
  • npm run startES5构建您的应用程序,为您的应用程序提供针对传统浏览器的
票数 5
EN

Stack Overflow用户

发布于 2019-06-17 22:05:02

我已经通过执行以下操作解决了IE 11polyfill.ts问题:

npm install --save web-animations-js

  • Uncomment‘es2015’到'es5' inside tsconfig.json运行npm install --save web-animations-js

  • Uncomment line import 'web-animations-js' inside tsconfig.json的值。

IE 11需要'es5‘。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56563742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档