将Angular应用更新到版本8后在Firefox上不起作用

时间:2019-07-01 11:01:59

标签: angular typescript browser polyfills angular8

我们已经将Angular应用程序从7.2版更新到了8版。到目前为止,更新过程一直有效,并且可以在Chrome,Firefox开发者版,Safari,Opera上以本地方式和产品模式(在服务器上)使用该应用程序,通常。

但是在普通的Firefox浏览器和Waterfox中,该应用无法正常工作:

  • 该应用尝试渲染,同时浏览器显示状态 “正在向本地主机执行tls握手” ,直到某个时候出现 ”连接已超时”
  • 在生产模式下,部署应用程序后,至少会显示登录掩码,但应用程序的性能非常差,几乎没有任何作用。

我们创建了一个浏览器列表文件,其中包含以下内容:

# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries

# You can see what browsers were selected by your queries by running:
# npx browserslist

> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.

我们的tsconfig如下:

{
  "compileOnSave": false,
  "compilerOptions": {
    "downlevelIteration": true,
    "importHelpers": true,
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es2015",
    "typeRoots": [
      "Node_modules / @ types"
    ]
    "lib": [
      "ES2016"
      "Dom"
    ]
    "module": "esnext"
  }
}

以及angular.json中具有ssl配置的区域,因此:

  "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
      "browserTarget": "farm-management-ui:build",
      "port": 8080,
      "ssl": true,
      "proxyConfig": "src/proxy.conf.js"
    },

我们已经成功执行了以下命令:

ng更新@ angular / cli-从7-到8-仅迁移-

ng更新@角度/核心-从7-到8-仅迁移

我觉得如果该应用程序在Firefox中运行,则会创建一个无限循环,因为我也无法打开其他网页,例如Stackoverflow等。

为什么Firefox突然出现这种行为,我们该如何解决?

1 个答案:

答案 0 :(得分:2)

将属性target es2015 更改为 tsconfig.json ,更改为旧值 es5 ,应用程序有效。