Babel 没有处理 Array.from 或 'for ... of' 循环

Babel is not processing Array.from or 'for ... of' loops

我将 babel 与 gulp (.pipe($.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

在写我的问题时自己解决了这个问题,但我想我会完成并自己回答以帮助未来的搜索者:

由于 ES5 的限制,babel 的某些功能需要在浏览器中加载 polyfill。这是在 babel-node 中自动加载的,或者您可以包含 babel-polyfill.

一些需要 polyfill 的功能:

  • 摘要参考
  • 数组解构
  • 异步函数
  • 理解
  • 对于
  • Array.from
  • 传播