繁体   English   中英

有条件地在ES6中导入模块

[英]Conditionally import modules in ES6

我正在为React提供免费和专业组件的库,并具有用于生产的汇总和用于开发人员的webpack。 我想重用一个组件,但免费版本的变体要少一些。 到目前为止,下面的代码一直有效,但是如果我们考虑使用汇总功能支持ssr和树状摇动,则必须使用es6导入(至少据我所知)。 任何想法如何导入模块(如果存在)->如果不存在-导入另一个模块?

let DropdownMenuComponent;
try {
  DropdownMenuComponent = require("./pro/DropdownMenuProComponent").default;
} catch (err) {
  DropdownMenuComponent = require("./DropdownMenuComponent").default;
}

我尝试了动态导入,但是在缺少模块时,它无法正确捕获错误。

谢谢

实际上,在第3阶段有一个建议,可以使用import()动态导入ES模块,还可以使用babel预设 ,在您的情况下将是这样的:

if (isProAccount()) 
    import("./pro/DropdownMenuProComponent")
      .then(DropdownMenuComponent => DropdownMenuComponent.something());
else
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM