相信很多人都和我一样,刚接触babel的时候都是使用 babel-preset-es2015
这个预设套餐的,但是显然目前而言 babel-preset-env
会是一个更好的选择,babel-preset-env
可以根据配置的目标浏览器或者运行环境来自动将ES2015+的代码转换为es5。
{
"presets": [
["@babel/preset-env"
"targets": {
"esmodules": true
}
]
]
}
同样也可以指定Node.js的版本:
{
"presets": [
["@babel/preset-env"
"targets": {
"node": "6.10"
}
]
]
}
如果node的选项值为 current
则说明是指定运行时的node.js版本。
{
"presets": [
["@babel/preset-env"
"targets": {
"node": "current"
}
]
]
}
babel-preset-env
的主要参数选项有:
-
targets
-
targets.node
-
targets.browsers
-
spec : 启用更符合规范的转换,但速度会更慢,默认为
false
-
loose:是否使用
loose mode
,默认为false
-
modules:将 ES6 module 转换为其他模块规范,可选
"adm" | "umd" | "systemjs" | "commonjs" | "cjs" | false
,默认为false
-
debug:启用debug,默认
false
-
include:一个包含使用的
plugins
的数组 -
exclude:一个包含不使用的
plugins
的数组 -
useBuiltIns:为
polyfills
应用@babel/preset-env
,可选"usage" | "entry" | false
,默认为false
Refs: