Условно импортные модули в ES6 - PullRequest
0 голосов
/ 22 января 2019

Я работаю над библиотекой для React с бесплатными и профессиональными компонентами с накопительным пакетом для производства и веб-пакетом для разработчика. Я хочу повторно использовать один компонент, но с меньшими изменениями для бесплатной версии. Код ниже работал до сих пор, но если мы думаем о поддержке ssr и встряхивания дерева с накопительным пакетом, мы должны использовать импорт es6 (по крайней мере, насколько я знаю). Любые идеи, как импортировать модуль, если он существует -> если нет - импортировать другой модуль?

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

Я пробовал динамический импорт, но он не улавливал ошибки должным образом, пока модуль отсутствовал.

Спасибо

1 Ответ

0 голосов
/ 22 января 2019

на самом деле на этапе 3 есть предложение для динамического импорта модулей ES с помощью import (), также доступны предустановки babel , в вашем случае это будет примерно так:

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