мне нужно сделать что-то вроде:Как я могу условно импортировать модуль ES6?
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
Приведенный выше код не компилируется; он бросает SyntaxError: ... 'import' and 'export' may only appear at the top level
.
Я пробовал использовать System.import
как показано на рисунке here, но не знаю, где System
. Это предложение ES6, которое не было принято? Ссылка на «программный API» из этой статьи сбрасывает меня до deprecated docs page.
Просто импортировать его в обычном режиме. Ваш модуль нуждается в этом независимо. – Andy
Я действительно не вижу причин, по которым вы не будете ввозить независимо от состояния. Это не похоже на какие-то накладные расходы. В каком-то сценарии вам нужен файл, поэтому он не похож на случай, когда он может быть полностью пропущен. В этом случае просто импортируйте его безоговорочно. – naomik
Мой прецедент: я хочу, чтобы было легко иметь дополнительную зависимость. Если депка не нужна, пользователь удаляет ее из 'package.json'; мой 'gulpfile' затем проверяет, существует ли эта зависимость до выполнения некоторых шагов сборки. – ericsoco