Ich muss so etwas tun wie:
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
Der obige Code wird nicht kompiliert. es wirft SyntaxError: ... 'import' and 'export' may only appear at the top level.
Ich habe versucht, System.importwie hier gezeigt zu verwenden , aber ich weiß nicht, woher es Systemkommt. Ist es ein ES6-Vorschlag, der nicht angenommen wurde? Der Link zu "Programmatic API" aus diesem Artikel führt mich zu einer veralteten Dokumentenseite .
package.json. my gulpfileprüft dann, ob diese Abhängigkeit besteht, bevor einige Build-Schritte ausgeführt werden.
webpackund babeltranspiliere es6 zu es5. Projekte wie webpack-rewireund ähnliche sollen hier nicht helfen - github.com/jhnns/rewire-webpack/issues/12 . Eine Möglichkeit, die Testdoppelwerte festzulegen ODER problematische Abhängigkeiten zu entfernen, könnte der bedingte Import sein.
webpackStylesheets in Module konvertiert werden, die die relevanten Stile in die einfügen DOM beim Importieren), aber das Modul muss auch außerhalb des Browsers ausgeführt werden (z. B. zum Testen von Einheiten).