babel-polyfill没有转码?

.babelrc

{
    "presets": [
        "es2015",
        "stage-0"
    ]
}

index.js

import "babel-polyfill";
function addAll() {
    return Array.from(arguments).reduce(function (a, b) {
        return a + b;
    });
}

运行编译

babel index.js -o dist.js

编译出来的dist.js

"use strict";

require("babel-polyfill");

function addAll() {
    return Array.from(arguments).reduce(function (a, b) {
        return a + b;
    });
}

并没有把Array.from转成es5语法啊?

Node运行版本是8.9.3

阅读 3.2k
2 个回答

什么叫转成ES5语法, 这种是API, 不是写法, 也不是语法. babel-polyfill 是用在这些API的兼容上的. 直接添加在原型里了,平常该怎么用就怎么用, 不用考虑兼容性.

const fn = () => {} 转成 var fn = function(){} 这叫转成语法.

你先分清楚babel是处理的了哪些东西,babel只转换语法。 比如 像箭头函数,babel是能处理成 function这种

但是像Array.from promise 这些 新的原生方法,是需要引入polyfill

算了讲起来好复杂 你看官方文档吧

https://babeljs.cn/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题