4

升级到 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;
    }
}

我错过了什么吗?

在此先感谢您的帮助!

4

1 回答 1

2

将此添加到 Webpack 配置中:

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

该问题出现在使用Kendo Angular Grid的项目中的 Webpack 构建中。默认的 Webpack 配置fesm5从 解析模块node_modules/@progress/kendo-angular-grid,它尝试使用 es5 扩展 EventEmitter 类并导致错误。更改内部 Webpack 配置的mainFields属性以优先考虑模块为我解决了这个问题。resolvees2015

于 2021-02-10T10:31:30.513 回答