export default <Class> exports double nested default

export default <Class> exports double nested default

首先我想说我知道我的标题不是描述我的问题的最佳方式,但同时我对这项技术没有清晰的了解能够用更好的方式表达出来。

一些信息

我正在开发一个相当大的开源项目,通过使用 webpack,您可以将所有内容打包到一个文件中。

该项目主要是用 Typescript 编写的。

建立起来

我有一个包含并导出 class Dom() 的脚本:

export default class Dom {
    //stuff
}

在另一个脚本中,我将此 class 导入为 $ 并通过 $.functionName() 访问它,没有编译器错误。

import $ from './dom';

export default class SelectionUtils {
    //stuff
}

问题

在整个项目编译并与 webpack 捆绑后,我部署它并看到 class Dom 的实例以 _dom.default.default 的形式部署,而不是 _dom.default。这意味着我无权访问 class 函数。

Object结构:

_dom
 |--default
 |  |--default: f Dom()
 |  |--__esModule: true
 |  |--_proto_: Object
 |--_proto_: Object

欢迎任何关于为什么会发生这种情况的提示。

提前致谢。

PS:我尽量把这个 post 说清楚,但是同样,因为我不明白问题的本质,所以我很难表达出来.

我通过在 class 中创建一个变量解决了我的问题,我想使用我的导入。

像这样:

export default class SelectionUtils {
    
    public $ = require('./dom').default;
    //stuff
}

我知道这可能不是最好的解决方案,但它目前有效。