bable-预设

babel 有多种预设,最常见的预设是 @babel/preset-env,它可以让你使用最新的 JS 语法,而无需针对每种语法转换设置具体的插件。

@babel/preset-env 预设

安装

npm i -D @babel/preset-env

配置

.babelrc 文件

在根目录下新建 .babelrc 文件,并设置以下内容:

{
    "presets": [
        "@babel/preset-env"
    ]
}

兼容浏览器

@babel/preset-env 需要根据兼容的浏览器范围来确定如何编译,和 postcss 一样,可以使用文件 .browserslistrc 来描述浏览器的兼容范围。

在根目录下新建 .browserslistrc 文件,并设置以下内容:

last 3 version
> 1%
not ie <= 8

它的书写规范多而繁琐,详情见:https://github.com/browserslist/browserslist

预设的配置

postcss-preset-env 一样, @babel/preset-env 自身也有一些配置,具体的配置见:https://www.babeljs.cn/docs/babel-preset-env#options

{
    "presets": [
        ["@babel/preset-env", {
            "配置项1": "配置值",
            "配置项2": "配置值",
            "配置项3": "配置值"
        }]
    ]
}

其中一个比较常见的配置项是 usebuiltins,该配置的默认值是 false,它有什么用呢?由于该预设仅转换新的语法,并不对新的 API 进行任何处理。

例如:

new Promise(resolve => {
    resolve()
})

转换的结果为

new Promise(function (resolve) {
    resolve();
});

如果遇到没有 Promise 构造函数的旧版本浏览器,该代码就会报错,而配置 usebuiltins 可以在编译结果中注入这些新的 API,它的值默认为 false ,表示不注入任何新的 API,可以将其设置为 usage,表示根据 API 的使用情况,按需导入 API。

{
    "presets": [
        ["@babel/preset-env", {
            "useBuiltIns": "usage",
            "corejs": 3
        }]
    ]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值