我正在为React开发带有免费和专业组件的库,并具有用于生产的汇总和用于开发人员的webpack。我想重用一个组件,但免费版本的变体要少一些。到目前为止,下面的代码一直有效,但是如果我们考虑使用汇总功能支持ssr和树状摇动,则必须使用es6导入(至少据我所知)。 有什么想法如何导入模块(如果存在)->如果不存在-导入另一个模块?
let DropdownMenuComponent;
try {
DropdownMenuComponent = require("./pro/DropdownMenuProComponent").default;
} catch (err) {
DropdownMenuComponent = require("./DropdownMenuComponent").default;
}
我尝试了动态导入,但是在缺少模块的情况下,它无法正确捕获错误。
谢谢
答案 0 :(得分:1)
实际上,在第3阶段有一个建议,可以使用import()动态导入ES模块,也可以使用babel presets are available,在您的情况下是这样的:
if (isProAccount())
import("./pro/DropdownMenuProComponent")
.then(DropdownMenuComponent => DropdownMenuComponent.something());
else
...