babel-polyfill的性质

时间:2017-03-24 19:46:47

标签: javascript webpack

在许多代码中,我看到了这样的表达:

 require('babel-polyfill').default;

属性默认是什么意思,我可以在哪里找到可以应用于babel-polyfill的所有属性,因为我没有在Babel官方文档中看到这个选项的用法。

1 个答案:

答案 0 :(得分:2)

这是一个ES6模块约定,有人正在设置"默认"将模块导出到特定对象。在ES6语法中,它等同于:

import Module from 'babel-polyfill'

将从babel-polyfill中取出默认导出,并将其作为Module放在当前文件中。

在babel-polyfill库内部,他们正在做

exports.default = { some: 'Object' }

这与命名导出不同,您希望从库中公开特定的命名事物:

exports.someThing = 'value';
...
import { someThing } from 'that-module';

您可以console.log require('babel-polyfill')require('babel-polyfill').default的结果来查看更多内容。但是,babel polyfill主要在全局命名空间中提供polyfill,并修改像Array这样的原生原型,并且你不能直接使用它中的任何东西。只需要它就有副作用,可以在运行的Javascript环境中添加正确的polyfill。