Обновление до Angular 8: изменение цели на «es2015» в tsconfig.json приводит к ошибке в polyfills-2015 - PullRequest
0 голосов
/ 05 июня 2019

При изменении цели на es2015 (вместо es5), я получаю следующую ошибку при запуске моего приложения:

polyfills-es2015.4a168e5d0734802f67ed.js:1 Uncaught TypeError: Cannot set property 'true' of undefined
    at Object.6dTf (polyfills-es2015.4a168e5d0734802f67ed.js:1)
    at u (runtime-es2015.05393c8efcd0eb158773.js:1)
    at Module.hN/g (polyfills-es2015.4a168e5d0734802f67ed.js:1)
    at u (runtime-es2015.05393c8efcd0eb158773.js:1)
    at Object.1 (polyfills-es2015.4a168e5d0734802f67ed.js:1)
    at u (runtime-es2015.05393c8efcd0eb158773.js:1)
    at t (runtime-es2015.05393c8efcd0eb158773.js:1)
    at Array.r [as push] (runtime-es2015.05393c8efcd0eb158773.js:1)
    at polyfills-es2015.4a168e5d0734802f67ed.js:1

Кроме того, мне нужно импортировать Zone.js в мой файл main.ts вместо polyfills.ts, в противном случае я получу ошибку:

в этой конфигурации угловой требует zone.js

Я использую Angular8, Typescript 3.4.5 и узел 12.4.0. Что я делаю не так?

My tsconfig.json:

{
  "angularCompilerOptions": {
    "preserveWhitespaces": false
  },
  "compileOnSave": false,
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ],
  "compilerOptions": {
    "outDir": "./dist/out-tsc/app",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "module": "esnext",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es6",
      "dom"
    ],
    "baseUrl": "./src"
  }
}

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Проблема исходит от web-animations-js .

Начиная с Angular 6, больше не требуется :

Мы обновили нашу реализацию анимации, чтобы больше не нуждаться в веб-анимации.Это означает, что вы можете удалить этот polyfill из вашего приложения и сохранить примерно 47 КБ размера пакета, одновременно увеличив производительность анимации в Safari.

https://angular.io/guide/browser-support#enabling-polyfills

Я удаленэто из polyfills и из моего package.json и ошибка исчезла.

0 голосов
/ 05 июня 2019

Ваш конфиг должен быть таким

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "esnext", // add this line
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  }
}
...