Node.js 当我尝试使用JS从外部类扩展类时,为什么会出现引用错误

Node.js 当我尝试使用JS从外部类扩展类时,为什么会出现引用错误,node.js,ecmascript-6,Node.js,Ecmascript 6,我有以下代码 class BasePage{ constructor(driver){ ... } } class Section extends BasePage{ constructor(driver, parent){ super(driver); ... } ... } export {BasePage, Section} 这似乎是可行的,然而,当我试图将部分移动到它自己的文件夹和文件中时

我有以下代码

class BasePage{
    constructor(driver){
        ...
    }
    
}
class Section extends BasePage{
    constructor(driver, parent){
        super(driver);
        ...
    }
    ...
}
export {BasePage, Section}
这似乎是可行的,然而,当我试图将部分移动到它自己的文件夹和文件中时,就像这样

import {BasePage} from "../BasePage";

export class Section extends BasePage{
    constructor(driver, parent){
        super(driver);
    }
}
我得到一个错误

节点:12480未处理PromisejectionWarning:ReferenceError:未定义BasePage

存档。。。第1.mjs节

这对我来说没有任何意义,如果我去掉扩展并尝试实例化它,它会很好地工作

export class Section{
    constructor(driver, parent){
        new BasePage(driver); // works fine
    }
}
这是怎么回事?为什么我得到一个未定义的基页

更新


这是一个循环依赖项

index.mjs加载BasePage.mjs BasePage.mjs在运行导出类BasePage{}之前加载其他.mjs 其他.mjs荷载截面.mjs Section.mjs跳过BasePage.mjs,因为它已经从步骤2开始进行。 Section.mjs尝试运行导出类Section扩展BasePage{/*…*/},这会引发错误,因为步骤2中的导出类BasePage{}尚未运行。
您还没有说明为什么需要导入其他内部BasePage,因此很难推荐更改,但基本上您不希望这样做。

请提供您的问题。我假设您有循环依赖关系,阻止在模块范围内访问BasePage。我想这样做,但我不确定如何充分隔离,我将对此进行处理。我假设它与某种循环依赖相关,但不确定为什么它在一个文件中工作,如果两个类都位于一个文件中,则不存在循环依赖。请发布整个文件。如果存在循环依赖关系,这两个模块可能会直接或间接地相互导入。我之所以导入其他模块,至少是因为我设想的基本页面是由其他页面组成的页面。其中一种类型的页面是section类型。导航是这些部分中的一部分,是基本页面的必要部分。在我的案例中,我通过创建、更改导入并使基本页面成为部分的支柱来解决它,但我并不特别喜欢这样