尝试运行Webpack打包的节点项目时,为什么会出现“ TypeError:类扩展值未定义的值不是构造函数或null”的原因

时间:2018-11-20 21:34:27

标签: node.js webpack ecmascript-6

我有一个从webpack导入的简单应用程序。导入的项目将导出此类...

export class BaseApp{...}

import { BaseApp } from "./MyClass"
import OtherThing from "./Other"
....
export { BaseApp, OtherThing }

接下来,我尝试将其扩展到另一个节点/表达式项目中...

import { BaseApp } from "@mine/util";

export class FullApp extends BaseApp{... }

我知道...

class FullApp extends _mine_util__WEBPACK_IMPORTED_MODULE_0__["BaseA
pp"]{
                                                                         ^

TypeError: Class extends value undefined is not a constructor or null

如何扩展从Webpack导入的类?

更新,这是一个演示问题的示例项目...

enter image description here

1 个答案:

答案 0 :(得分:0)

确切地说,当消息来源还有更多内容时,就无法确定。如果其他人看到此错误,则首先要查找的是循环依赖项:文件依赖于其他文件(可能间接地)依赖于其他文件。 JS必须从某个地方开始,无法确保在另一个文件需要时已定义了文件,并且以后将不尝试返回并填充空白。

如果导入/ require语句不止几个,我建议定期运行诸如Madge之类的检查器,以查找并可视化任何循环,以免它们变得难以撤消。

loadComponent() {
    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ChartCheckpointComponent);
    const viewContainerRef = this.checkHost.viewContainerRef;
  }