ho bisogno di fare qualcosa di simile:Come posso importare condizionatamente un modulo ES6?
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
Il codice di cui sopra non può essere compilato; getta SyntaxError: ... 'import' and 'export' may only appear at the top level
.
Ho provato a utilizzare System.import
come illustrato here, ma non so da dove proviene lo System
. È una proposta ES6 che non è stata accettata? Il collegamento a "API programmatiche" di quell'articolo mi invia a deprecated docs page.
Basta importare normalmente. Il tuo modulo ne ha bisogno a prescindere. – Andy
Non vedo alcun motivo per cui non si importerebbe solo indipendentemente dalla condizione. Non è che ci sia una sorta di sovraccarico. In alcuni scenari è necessario il file, quindi non è che ci sia mai un caso in cui può essere completamente ignorato. In tal caso, basta importarlo incondizionatamente. – naomik
Il mio caso d'uso: voglio rendere semplice avere una dipendenza opzionale. Se il dep non è necessario, l'utente lo rimuove da 'package.json'; il mio 'gulpfile' quindi controlla se esiste questa dipendenza prima di eseguire alcuni passi di costruzione. – ericsoco