web-dev-qa-db-ja.com

BabelはArray.fromまたは 'for ... of'ループを処理していません

私はgulp(.pipe($.babel()))でbabelを使用していますが、ほとんどの場合は機能するようですが、Array.fromでは機能しません。

babel-nodeを実行すると正常に動作します:

$ ./node_modules/babel/bin/babel-node.js
> Array.from
[Function: from]

しかし、次のコードがgulpで処理される場合:

var foo = () => { console.log(Array.from) }

トランスパイルされたソースは次のとおりです。

var foo = function foo() {
    console.log(Array.from);
};

そして、fooを実行したときのコンソール出力は次のとおりです。

undefined

15
Zach Lysobey

私の質問を書いている間にこれを自分で解決することになりましたが、将来の検索者を助けるために私が終了して自分自身に答えると思いました:

ES5の制限により、ブラウザにポリフィルをロードする必要があるbabelの特定の機能があります。これはbabel-nodeに自動的にロードされます。または、 babel-polyfill で含めることができます。

ポリフィルを必要とする機能のいくつか:

  • アブストラクトリファレンス
  • アレイの破壊
  • 非同期関数
  • 理解
  • Array.from
  • 拡大
12
Zach Lysobey