babel polyfill与运行时的关系是什么?

时间:2017-03-27 02:41:44

标签: babeljs

  

Babel包含一个包含自定义再生器运行时的polyfill   和core-js。

     

此变换器的另一个目的是创建一个沙箱   代码的环境。如果你使用babel-polyfill和内置插件   它提供诸如Promise,Set和Map

根据文档,我考虑了这些信息,并得到以下几点:

  1. polyfill包含在babel中,因此如果我们使用babel-loader,polyfill将自动包含在转换后的结果中。
  2. babel-plugin-transform-runtime只会对重要类的名称进行别名,本身不包含任何polyfill或运行时。
  3. 如果您不使用babel-plugin-transform-runtime,则polifill也将包含在已转换的结果中,但不会出现别名。
  4. 我是对的吗?

1 个答案:

答案 0 :(得分:0)

使用babel-loader时不包括

babel-polyfill:   babel-loader的作用是告诉webpack如何转换源文件。   如果你想使用babel-polyfill:     首先,运行npm install --save babel-polyfill安装它     第二,在您的输入文件import 'babel-polyfill'

的顶部要求或导入它 只有在开发库时才应该使用

babel-plugin-transform-runtime,因为babel-polyfill修改全局变量:例如,当你使用babel-polyfill时,全局window.Object将包含assign等属性,以及如果您的浏览器不支持它们,Promise,Set,Map等新API将作为全局变量提供,否则您应该使用babel-polyfill。