【问题标题】:what is the relationship of babel polyfill and runtime?babel polyfill 和运行时的关系是什么?
【发布时间】:2017-03-27 02:41:43
【问题描述】:

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 也会包含在转译结果中,但不会被别名。

我说的对吗?

【问题讨论】:

  • 您可以自己检查每一项。

标签: babeljs


【解决方案1】:

使用 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 等属性和新的 API如果您的浏览器不支持 Promise、Set、Map 等全局变量,则应使用 babel-polyfill。

【讨论】:

  • 我不明白otherwise you should use the babel-polyfill 是什么意思。不是otherwise you should use the babel-plugin-transform-runtime 吗?
  • 这意味着如果你不写库你应该使用babe-polyfill
猜你喜欢
  • 2018-07-10
  • 1970-01-01
  • 2020-08-30
  • 2015-10-09
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 2019-07-07
  • 2019-08-20
相关资源
最近更新 更多