は、私のような何かをする必要があります。ES6モジュールを条件付きでインポートするにはどうすればよいですか?
if (condition) {
import something from 'something';
}
// ...
if (something) {
something.doStuff();
}
上記のコードはコンパイルされません。それはSyntaxError: ... 'import' and 'export' may only appear at the top level
を投げる。
hereのように私はSystem.import
を使ってみましたが、System
がどこに由来しているのか分かりません。それは受け入れられることに終わらなかったES6の提案ですか?その記事の「プログラムAPI」へのリンクは、deprecated docs pageにダンプします。答えは今のところ、あなたができない、ということであるように
ただ、通常はそれをインポートします。あなたのモジュールはそれを必要としません。 – Andy
条件に関係なくインポートするだけの理由は本当にありません。何らかのオーバーヘッドのようなものではありません。いくつかのシナリオではファイルが必要なので、完全にスキップすることはできません。その場合は、無条件にインポートするだけです。 – naomik
私の使用例:オプションの依存関係を簡単に作成したいと考えています。 depが必要でない場合、ユーザーは 'package.json'からそれを削除します。私の 'gulpfile'はいくつかのビルドステップを実行する前にその依存関係が存在するかどうかを確認します。 – ericsoco