Babel @babel/polyfil

Babel 默认仅转换新的 JavaScript 句法,不包括新的 API 如 Set、Map 等。为了使用这些新 API,需要引入 @babel/polyfill。然而,从 Babel 7.4.0 开始,推荐使用 core-js/stable 和 regenerator-runtime/runtime 替代,以避免全局污染和代码体积增大问题。
摘要由CSDN通过智能技术生成

Babel 中默认只转换新的 JavaScript 句法,例如箭头函数、扩展运算符等。但是不会转换新的 API,像是Set、Maps、Iterator、Generator 、Symbol、Reflect 等全局对象,以及一些定义在全局对象上的方法都不会进行转译。如果想使用这些新的对象和方法,则需要为当前环境提供一个 polyfill 垫片。

举一个例子,例如 ES6 在 Array 对象上有一个新增的 Array.from 方法,因为这个方法是全局对象上的方法,所以 Babel 就不会对这个方法进行转译。如果想让这个方法运行,就要使用 @babel/polyfill 为当前环境提供一个垫片。

安装@babel/polyfil

目前最常用的配合 Babel 一起使用的 polyfill 垫片就是 @babel/polyfil,通过改写全局 prototype 的方式实现,它会加载整个 polyfil,针对编译的代码中新的 API 进行处理,并且在代码中插入一些帮助函数,比较适合单独运行的项目。

安装命令如下所示:

 $ npm install --save @babel/polyfil

安装好后我们可以在程序入口文件的顶部引用 @babel/polyfil::

require('@babel/polyfill')
[].findIndex('babel')

或者使用 ES6 的语法,使用 import 导入:

import '@babel/polyfill'
[].findIndex('babel')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值