#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», не нарушая мое приложение?
Спасибо