Динамический импорт выражений
Last updated
Was this helpful?
Last updated
Was this helpful?
Динамический импорт - это новая функция ECMAScript, которая позволяет асинхронно загружать модуль в любом месте вашей программы. Комитет TC39 JavaScript имеет такое предложение на stage 4
, которое называется .
Кроме того, в webpack
есть функция Code splitting
, которая позволяет разбить код на множество чанков(разных файлов), которые могут быть загружены асинхронно в будущем. Поэтому вы можете обеспечить минимальный размер при запуске программы и загружать другие модули асинхронно в будущем.
Естественно думать (если мы работаем с webpack
в dev
режиме) автоматически разбивают ваш окончательно сгенерированный код JavaScript на множество частей(чанков). Но это не кажется простым, потому что это зависит от файла конфигурации tsconfig.json
, который мы используем.
Есть два способа, которыми webpack
может реализовать разбиение кода: использование import()
(предпочтительно, предложение ECMAScript) и require.ensure()
(реализация webpack
). Поэтому мы ожидаем, что выходные данные TypeScript сохранят оператор import()
, а не преобразуют его в любой другой код.
Давайте рассмотрим пример. В этом примере мы продемонстрировали, как настроить webpack
и TypeScript 2.4+.
В следующем примере я хочу лениво загрузить библиотеку moment
, а также использовать функцию разделения кода, которая означает, что moment
будет разделен на отдельный файл JavaScript, а при его использовании он будет загружен асинхронно.
Это настройки для tsconfig.json
:
Используйте параметр module: esnext
: TypeScript генерирует операторы import()
для разделения кода webpack
.
Для получения дополнительной информации, я рекомендую прочитать эту статью: