muszę zrobić coś takiego:Jak mogę warunkowo zaimportować moduł ES6?
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
Powyższy kod nie kompiluje; rzuca SyntaxError: ... 'import' and 'export' may only appear at the top level
.
Próbowałem użyć System.import
jak pokazano here, ale nie wiem skąd pochodzi System
. Czy to propozycja ES6, która ostatecznie nie została zaakceptowana? Link do "programistycznego API" z tego artykułu rzuca mnie na numer deprecated docs page.
Wystarczy zaimportować go normalnie. Twój moduł potrzebuje tego niezależnie. – Andy
Nie widzę żadnego powodu, dla którego nie importowałbyś go bez względu na stan. To nie tak, że jest jakiś nadmiar. W niektórych scenariuszach potrzebujesz pliku, więc nie jest tak, że kiedykolwiek można go całkowicie pominąć. W takim przypadku wystarczy zaimportować go bezwarunkowo. – naomik
Mój przypadek użycia: chcę, aby było łatwo mieć opcjonalną zależność. Jeśli dep nie jest potrzebny, użytkownik usuwa go z 'pakiet.json'; mój 'gulpfile' sprawdza, czy ta zależność istnieje przed wykonaniem niektórych kroków kompilacji. – ericsoco