La différence entre le Système.import() et d'importation()?

Dans webpack 1 docs de l'état que dans webpack 2 utilisera System.import() dynamique exiger:

Heureusement, il existe une API JavaScript “loader” de la spécification à l'
écrites pour gérer la dynamique de cas d'utilisation: System.load (ou
System.import). Cette API sera le natif équivalent à la ci-dessus
require variations.

Et pendant ce temps, tout autour du web, a été exemples de l'utilisation de ce System.import().


Avant de relâcher webpack 2, les auteurs décident de changer de System.import() à import():

ajouter import() que le Code de Fractionnement de construire. Il doit être utilisé au lieu de
System.import lorsque cela est possible. System.import sera obsolète dans
webpack de version 2 (supprimé dans webpack 3) comme c'est le comportement est incorrect
selon la spécification
.

Ce import() est basé sur tc39/proposition-dynamique-import cahier des charges, et vous pouvez en lire plus pourquoi ils ont fait ce changement ici.


Quelqu'un peut m'expliquer la différence entre System.import() et import()?

Malgré un nom différent, l'utilisation semble le même:

import(modulePath)
  .then(module => module.default())
  .catch(/* ... */);

System.import(modulePath)
  .then(module => module.default())
  .catch(/* ... */);

Mais dans weback 2 doc est: "System.import() comportement est incorrect, selon la spécification" - de sorte qu'il suggère qu'il ya de différence entre System.import() et import().

  • Si je lis les liens que vous avez fournis à droite, une différence très importante est que import() est conscient du script ou d'un module qui l'invoque, tandis que System.import() ne l'est pas. Si je suis en droit, cela signifie que import('../foo'), c'est à dire la résolution relative à l'actuelle module, est possible. Et puis je me suis peut être mal trompe, corrigez-moi.
  • Il ressemble à la différence provient de cette github question
InformationsquelleAutor Everettss | 2017-02-12