Es gibt eine neue Spezifikation, die ein genannt wird dynamischer Import für ES-Module. Im Grunde rufen Sie einfach import('./path/file.js')
und Ihr Gut zu gehen. Die Funktion gibt eine Zusage zurück, die mit dem Modul aufgelöst wird, wenn der Import erfolgreich war.
async function import() {
try {
const module = await import('./path/module.js');
} catch (error) {
console.error('import failed');
}
}
Wichtige Anwendungsfälle Route basiertes Modul umfassen für Polymer Import 3.0, Reaktion und Vue, die Download-Bandbreite reduziert, da das Bündel für die Routen sind nur dann geladen, wenn sie erforderlich sind.
Hier ist die vorgeschlagene Spezifikation auf Github.
Derzeit (Januar 2017) funktioniert diese Funktion in Chrome 62. Die anderen großen Browser greifen diese Funktion wahrscheinlich auf und implementieren sie später, wenn die ESmodule-Unterstützung vollständig unterstützt wird.
Edit:
Ich soll hinzufügen, dass der spec Einfuhren statisch analysierbar sein erfordert, sowohl den regulären Import als auch den dynamischen Import, was bedeutet, dass Sie nicht einen Variablennamen verwenden können, um Ihren Importpfad zu erklären . Es gibt also keine Lösung für Ihre Frage, weil die ES-Spezifikation das durch Design verhindert.
Haben Sie es versucht? – Bigood
@Bigood ja, Compiler wirft auf und Webstorm zeigt auch einen Fehler –