J'ai besoin de faire quelque chose comme:
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
Le code ci-dessus ne compile pas; il jette SyntaxError: ... 'import' and 'export' may only appear at the top level
.
J'ai essayé d'utiliser System.import
comme indiqué ici , mais je ne sais pas d'où System
vient. Est-ce une proposition ES6 qui n'a finalement pas été acceptée? Le lien vers "API programmatique" de cet article me renvoie vers une page de documentation obsolète .
package.json
; my gulpfile
vérifie ensuite si cette dépendance existe avant d'effectuer certaines étapes de construction.
webpack
et babel
transpile es6 en es5. Les projets comme webpack-rewire
et similaires ne sont d'aucune utilité ici - github.com/jhnns/rewire-webpack/issues/12 . Une façon de définir les doubles de test OU de supprimer les dépendances problématiques pourrait être l'importation conditionnelle.
webpack
est utilisé pour convertir les feuilles de style en modules qui insèrent les styles pertinents dans le DOM lorsqu'ils sont importés) mais le module doit également s'exécuter en dehors du navigateur (par exemple pour les tests unitaires).