ОШИБКА TypeError: конструктор класса EventEmitter_ не может быть вызван без 'new'

После обновления до Angular 10 я получаю следующую ошибку для некоторых компонентов -

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)

Код, вызывающий эту проблему -

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

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

Я что-то пропустил?

Заранее спасибо за помощь!

1 ответ

Добавьте это в конфигурацию Webpack:

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

Проблема возникает при сборке Webpack в проектах, использующих Kendo Angular Grid . Конфигурация Webpack по умолчанию разрешает fesm5 модуль из node_modules/@progress/kendo-angular-grid, который пытается расширить класс EventEmitter с помощью es5 и приводит к ошибке. Изменение mainFields собственностью resolve внутри конфигурации Webpack для определения приоритетов es2015 модули исправили это для меня.

Другие вопросы по тегам