【问题标题】:Why won't my default class import in ES6?为什么我的默认类不能在 ES6 中导入?
【发布时间】:2023-04-02 10:08:01
【问题描述】:

我是第一次在 webpack 中使用 babel-loader,而且我对 ES6 也很陌生。我正在尝试从一个文件导出基类并将其导入另一个文件。到目前为止,导出和导入在我的整个文件中都运行良好,而我现在在尝试创建类时第一次遇到了问题。

我的代码如下所示:

BaseClient.js

export default class BaseClient {
  // snip...
};

SessionClient.js

import BaseClient from './BaseClient';

// outputs "undefined":
console.log(BaseClient);

// throws "Uncaught TypeError: Super expression must either be null or a function, not undefined":
export default class SessionClient extends BaseClient {
  // snip...
};

我做错了吗?在诊断之前,我的问题中是否缺少任何相关信息?谢谢!

【问题讨论】:

  • 这应该可以工作 iirc。您是否使用正确的路径?
  • 我正在使用正确的路径。我尝试了一个假路径来确保,它给了我一个关于文件不存在的错误,所以我知道它是正确的。
  • 这是一个简化的例子吗?只是想知道您的实际代码中是否有任何循环引用,因为这可能会导致这个问题。
  • 是的,就是这样。昨晚深夜我发现我在拆分基本客户端时不小心创建了一个循环引用。添加您的评论作为答案,我会接受。 :)
  • 完全不同的代码上的相同问题。这也是一个循环依赖问题。谢谢!

标签: ecmascript-6 webpack babeljs


【解决方案1】:

是的,我也遇到了这个问题。这是由很长的引用链中不同文件之间的循环引用引起的。
喜欢以下:

【讨论】:

    猜你喜欢
    • 2020-11-21
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2020-06-18
    • 2018-10-19
    • 2015-11-17
    相关资源
    最近更新 更多