В webpack 1 docs - это утверждение, которое в webpack 2 будет использовать System.import()
для динамического require:
К счастью, существует спецификация JavaScript-загрузчика JavaScript API, являющаяся для обработки динамического варианта использования:
System.load
(илиSystem.import
). Этот API будет родным, эквивалентным приведенному вышеrequire
.
И за это время по всему миру было примеры использования этого System.import()
.
Перед выпуском webpack 2 авторы решили изменить System.import()
на import()
:
добавить
import()
как конструкцию разделения кода. Он должен использоваться вместоSystem.import
, когда это возможно.System.import
будет устаревать в webpack 2 release (удалено в webpack 3) , так как поведение неверно согласно спецификации.
Этот import()
основан на tc39/proposal-dynamic-import спецификации, и вы можете узнать больше, почему они сделали это изменение здесь.
Может ли кто-нибудь объяснить разницу между System.import()
и import()
?
Несмотря на другое имя, использование выглядит одинаково:
import(modulePath)
.then(module => module.default())
.catch(/* ... */);
System.import(modulePath)
.then(module => module.default())
.catch(/* ... */);
Но в weback 2 doc есть: "System.import()
поведение неверно в соответствии со спецификацией" - поэтому он предполагает, что существует разница между System.import()
и import()
.