Проблема миграции универсального приложения Angular с целью сценария ts builder: es2016

#angular #angular-universal #angular10

Вопрос:

Недавно я перенес свое приложение Angular 9 на Angular 10.2

Я использую Angular Universal для своего проекта, и после обновления мое приложение выходит из строя со следующей ошибкой:

 ReferenceError: KeyboardEvent is not defined
 

Я использую, чтобы исправить эту ошибку, когда начинаю использовать Universal, добавив domino:

 const domino = require('domino');
const fs = require('fs');
const template = fs.readFileSync('dist/webdrive/browser/index.html').toString();
const win = domino.createWindow(template);

global['localStorage'] = localStorage;
global['window'] = win;
global['document'] = win.document;
global['HTMLElement'] = win.HTMLElement;
global['navigator'] = win.navigator;
global['KeyboardEvent'] = win.Event;
global['FocusEvent'] = null;
 

К сожалению, при переходе на 10.2 эта ошибка появляется снова.

Я нашел это в tsconfig.server.json

«модуль»: «commonjs» был заменен на «цель»: «es2016», что вызвало ошибку. Когда я возвращаюсь к «модулю»: «commonjs», приложение работает.

Может ли кто-нибудь дать мне какую-либо подсказку о том, почему это происходит и как я могу использовать «цель»: «es2016», не нарушая мое приложение?

Спасибо