首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >babel: babel-polyfill和babel-es2015有什么不同?

babel: babel-polyfill和babel-es2015有什么不同?
EN

Stack Overflow用户
提问于 2018-03-02 15:13:38
回答 1查看 347关注 0票数 2

babel-polyfillbabel-es2015有什么不同?babel-es2015是否包含babel-polyfill

EN

Stack Overflow用户

发布于 2018-03-02 15:27:22

Babel-polyfill

此模块通过在全局(如: Promise和WeakMap)和原型(如Array.prototype.includes)上分配方法来完成模拟ES2015。例如:如果您的环境没有Promise对象,一旦您需要babel-polyfill,您就知道有Promise对象,因为它被添加到全局作用域中。

Babel-runtime

这个模块做一些非常类似的事情,但它不会改变全局命名空间或污染原型。相反,babel-runtime可以作为应用程序的依赖项来包含,就像任何其他模块一样,并且您可以包含模块中的ES2015方法。

例如: Promise对象,可以使用:

包含-promise

代码语言:javascript
运行
复制
require('babel-runtime/core-js/promise');

然而,这是太多的工作,所以我们使用babel -plugin-transform- can,我们可以将它添加到babel配置中,以自动重写您的代码,以便您使用Promise API编写代码,并将其转换为使用babel-runtime导出的类似Promise的对象。

babel-config

代码语言:javascript
运行
复制
{
 "plugins": ["transform-runtime"]
}

有关更多详细信息,请访问here

那么什么时候使用呢?

  • 如果你不关心污染全局作用域,babel-polyfill是更好的选择:运行时不能使用实例方法,如myArray.includes(15).
  • If你正在编写公共模块:使用babel-runtime
  • If你正在编写应用程序那么babel-
    • 是更好的选项
    • 在某些情况下,当你不需要这两种情况时,如果你正在编写一个大小很重要的库,你最好避免它们。
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49064344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档