Этот вопрос может быть похож на Разница между «require (x)» и «import x» , но на самом деле это другое.
Я заметил использование из await import
недавно, в Next. js проекты, такие как: https://github.com/zeit/next.js/blob/canary/examples/with-apollo/lib/apollo.js#L134
if (ssr && AppTree) {
// Import `@apollo/react-ssr` dynamically.
// We don't want to have this in our client bundle.
const { getDataFromTree } = await import('@apollo/react-ssr')
}
На первый взгляд, я считаю, что использование await import('@apollo/react-ssr')
позволяет использовать import
в исходном коде (условно) вместо импорта модуля @apollo/react-ssr
на верхнем уровне. Цель состоит в том, чтобы уменьшить размер сгенерированного пакета для браузера (браузер не будет содержать @apollo/react-ssr
пакет).
До сих пор я всегда использовал const reactSSR = require('@apollo/react-ssr')
для условного импорта пакетов. Интересно, какая разница между обоими способами.
Может быть, использовать await import('@apollo/react-ssr')
лучше, потому что он позволяет раскидывать деревья? Есть ли "минусы" его использования по сравнению с require
?