angular - FEIL TypeError: Klassekonstruktør EventEmitter_ kan ikke kalles uten 'new'


Etter oppgradering til Angular 10 får jeg følgende feil for noen komponenter -

ERROR TypeError: Class constructor EventEmitter_ cannot be invoked without 'new'
    at new ZoneAwareEventEmitter (index.js:34)
    at new GridComponent (index.js:6167)
    at createClass (core.js:21921)
    at createDirectiveInstance (core.js:21790)
    at createViewNodes (core.js:30281)
    at callViewAction (core.js:30597)
    at execComponentViewsAction (core.js:30516)
    at createViewNodes (core.js:30309)
    at callViewAction (core.js:30597)
    at execComponentViewsAction (core.js:30516)

Koden som forårsaker dette problemet -

import { EventEmitter } from "@angular/core";

export class ZoneAwareEventEmitter extends EventEmitter {
    constructor(ngZone, isAsync = false) {
        super(isAsync);
        this.ngZone = ngZone;
    }
}

Går jeg glipp av noe?

Takk på forhånd for hjelpen!

Svar #1

Legg dette til i Webpack-konfigurasjonen:

resolve: {
    mainFields: ['es2015', 'browser', 'module', 'main']
},

Problemet oppstår i Webpack-bygg i prosjekter som bruker Kendo Angular Grid. Standard Webpack-konfigurasjon løser fesm5-modulen fra node_modules/@progress/kendo-angular-grid, som prøver å utvide EventEmitter-klassen ved bruk av es5 og resulterer i feilen. Å endre mainFields-egenskapen til resolve i Webpack-konfigurasjonen for å prioritere es2015-moduler løste dette for meg.

Relaterte artikler