Мне нужно сделать что-то вроде:
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
Приведенный выше код не компилируется; это бросает SyntaxError: ... 'import' and 'export' may only appear at the top level.
Я попытался использовать, System.importкак показано здесь , но я не знаю, откуда System. Это предложение ES6, которое не было принято? Ссылка на «программный API» из этой статьи выводит меня на устаревшую страницу документации .
package.json; my gulpfilethen проверяет, существует ли эта зависимость, перед выполнением некоторых шагов сборки.
webpackи babelдля транспорта ES6 в ES5. Проекты, подобные webpack-rewireи похожие, здесь не помогут - github.com/jhnns/rewire-webpack/issues/12 . Одним из способов установки теста, удваивающего ИЛИ для удаления проблемных зависимостей, может быть условный импорт.
webpackиспользуется для преобразования таблиц стилей в модули, которые вставляют соответствующие стили в DOM, когда они импортированы), но модуль также должен работать вне браузера (например, для модульного тестирования).