Javascript动态模块导入返回未定义

时间:2019-04-13 16:07:52

标签: javascript dynamic import es6-modules

我正在尝试利用new JavaScript dynamic import syntax来加载ES6模块。每个模块导出一个类。但是,我无法访问模块的默认导出。在检查器中,我可以看到我的模块已导入并包含所需的类,但是无法使用default属性进行访问。

我试图在Firefox 67和Chrome 74上运行我的代码,这两个代码均产生相同的结果。我还尝试过使用静态导入,这些导入可以在对我的代码进行少量调整后正常工作。

我的代码尝试导入三个模块: home visitors statistics 。每个类分别包含一个名为 HomeView VisitorView StatisticsView 的类。

const module_names = [
  'home',
  'visitor',
  'statistics',
];

const module_promises = 
  module_names.map(name => import(`./modules/${name}.js`));

const module_instances = Promise.all(module_promises)
  .then(module => new module.default());

但是这会导致出现消息“ TypeError:module.default不是构造函数” 。我试图将其用作功能,但出现类似错误。最后,我尝试打印default属性,发现该属性未定义。

const module_instances = Promise.all(module_promises)
  .then(module => console.log(module.default)); // undefined

我期望创建一个实例化类对象的列表。假设检查我的module_promises变量的日志(下面的屏幕截图)显示了存储在default属性下的正确类,则我看不到问题可能出在哪里。

Chrome inspector screenshot

0 个答案:

没有答案