Возможно ли иметь действительно динамический импорт () в веб-пакете? - PullRequest
0 голосов
/ 08 ноября 2018

Я пытался использовать функцию import () для импорта чего-то динамического во время выполнения. Я думаю, что пока я создаю запись для файла, веб-пакет может быть достаточно умным, чтобы импортировать () правильный модуль, но это не так.

Кто-нибудь знает способ выделения записи и использования синтаксиса import (), передачи ей переменной и обеспечения ее работы во время выполнения?

Простой пример проблемы с корнем выглядит следующим образом:

// works
import( './a.js' ).then(() => console.log('it worked'));

// something is a dynamic variable that changes at runtime
const something = './a.js';
// does not work, even with this simplistic example
import( something ).catch(() => console.log('it did not work'));

1 Ответ

0 голосов
/ 08 ноября 2018

Это не работает, потому что, хотя это называется «динамический импорт», оно не соответствует тому, что означает это слово. Идея «динамического» импорта заключается в том, чтобы иметь возможность динамически импортировать что-либо во время выполнения, но здесь есть предостережение: импортируемый модуль должен быть известен.

Поскольку webpack выполняет статический анализ для выполнения отложенной загрузки этих операторов import(), все должно быть известно и предсказуемо, иначе webpack не сможет создавать асинхронные блоки на лету. Вот почему добавление переменной в импорт не работает.

...