抑制babel提供的poly-fill

时间:2017-11-06 18:30:43

标签: javascript ecmascript-6 babeljs

有没有办法抑制babel提供的polyfill?例如,转发以下内容:

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var obj = { a: 1 };
var obj2 = _extends({}, obj);

将输出

var obj = { a: 1 };
var obj2 = Object.assign({}, obj);

我希望输出:

{{1}}

由于我们的代码库的性质,我想提供一个Object.assign polyfill然后让babel在转换时不进行这种转换。我已经阅读了文档,但无法找到实现这一目标的方法。这可能吗?

1 个答案:

答案 0 :(得分:1)

您似乎正在使用object rest spread transform plugin。如文档所述,它可以配置为仅使用内置函数,而不是提供它自己的polyfill。如果您使用.babelrc配置构建过程,则只需将其修改为以下内容:

{
  ...
  "plugins": [
    ["transform-object-rest-spread", { "useBuiltIns": true }]
  ]
}