@babel/polyfill
该模块包括核心JS(core-js/stable)和一个定制的再生器运行时,以模拟完整的ES2015+环境
{
“present”: [
[
“@babel/env”,
{
“targets”: {
“edge”: “17”,
“chrome”: “67”
},
“useBuiltIns”: “usage”
}
]
]
}
使用env预设,它有一个”useBuiltIns”选项,当设置为”usage”时,实际上将应用上面提到的最后一个优化,您只需要包括所需的polyfill
总结: 使用@babel/cli 从终端中运行Babel,使用@babel/polyfill来填充所有新的JavaScript功能,并且使用env预设仅包含我们使用的功能以及目标浏览器中缺少的转换和polyfill
安装插件允许Babel解析(parse)特定类型的语法
注意: 转换插件会自动启动语法插件。因此,已经使用了相应的转换插件,则不需要指定语法插件
如果插件在npm上,可以输入插件的名称,babel会自动检查它是否安装到了node_modules目录下
{
“plugins”: [“babel-plugin-myPlugin”],
// 指定相对目录
“plugins”:[“./node_modules/asdf/plugin”]
}
Present 的拍列顺序
Present 是逆序排列(从后往前)
{
“preents”: [
“a”,
“b”,
“c”
]
}
执行顺序 c->b->a
目的是为了确保向后兼容,大多数用户将”es2015”放在”stage-0”之前
babel模块的释义
@babel/core Babel核心库,包含Babel的核心功能
@babel/cli 命令行工具,使用它从终端运行Babel
@babel/env present 一组预设的核心插件库,只对我们所使用目标浏览器中缺失的功能进行转换和加载polyfill
@babel/polyfill 用来模拟所有新的JavaScript功能(垫片)