Угловая универсальная ошибка ReferenceError: MouseEvent не определено - PullRequest
0 голосов
/ 18 октября 2019

Я использую Angular Universal для рендеринга ssr, в то время как я использую угловую команду cli: npm run build: ssr && npm run serve: ssr, я получаю ошибку.

с использованием Angular8

/home/xyz/projects/my-app/dist/server/main.js:139925
Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"])("design:paramtypes", [MouseEvent, HTMLElement]),
                                                                               ^

ReferenceError: MouseEvent is not defined
    at Module.UPO+ (/home/xyz/projects/my-app/dist/server/main.js:139925:84)

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! patient-app@0.0.0 serve:ssr: `node dist/server`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the patient-app@0.0.0 serve:ssr script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vijay/.npm/_logs/2019-10-18T07_30_11_791Z-debug.log

1 Ответ

0 голосов
/ 18 октября 2019

Код на стороне клиента, такой как Document, Window, localstorage, MouseEvent и т. Д., Не будет существовать при работе в универсальном режиме вашего углового приложения, так как ваша первая страница будет отображаться на сервере.

Итак, если в вашем коде присутствует такой фрагмент кода, вам нужно обернуть свой код на стороне клиента в platformBrowser, например, -

import { ..., PLATFORM_ID, ... } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';


constructor(
    @Inject(PLATFORM_ID) private platformId: Object,
){
    if (isPlatformBrowser(this.platformId)) {
       // MouseEvent code
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...