抑制 babel 提供的多边形填充



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

const obj = { a: 1 };
const obj2 = { ...obj };

将输出

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);

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

看起来您正在使用对象休息传播转换插件。如文档所述,可以将其配置为仅使用内置函数,而不是提供自己的 polyfill。如果使用.babelrc来配置生成过程,只需将其修改为如下所示:

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

最新更新