babel常识备忘

{
"plugins": ["transform-es2015-arrow-functions"],
"presets": ["es2015"]
}
一个典型的babelrc配置:包括presets 与 plugins两个字端。es6

须要明确的点:浏览器

1,es2015:es6
2,es2016:es7
3,es2016:es8babel

presets:本质上是预设的plugin集合,提供了一些官方推荐的plugin。不须要一个一个手动去配置。es5

babel-preset-es2015: 能够将es2015即es6的js代码编译为es5插件

babel-preset-es2016: 能够将es2016即es7的js代码编译为es6orm

babel-preset-es2017: 能够将es2017即es8的js代码编译为es7排序

babel-preset-stage-x: 能够将处于某一阶段的js语法编译为正式版本的js代码io

stage-X: 指处于某一阶段的js语言提案。编译

提案共分为五个阶段:ast

stage-0: 稻草人-只是一个大胆的想法 包含下面全部stage
stage-1: 提案-初步尝试
stage-2: 初稿-完成初步规范
stage-3: 候选-完成规范和浏览器初步实现
stage-4: 完成-将被添加到下一年发布

当前 babel 推荐使用 babel-preset-env 替代 babel-preset-es2015 和 babel-preset-es2016 以及 babel-preset-es2017 ,env的支持范围更广,包含es2015 es2016 es2017的全部语法编译,而且它能够根据项目运行平台的支持状况自行选择编译版本。

使用方法: '.babelrc' 中 'es2015' 改成 'env',

{
"presets": ["env", "stage-2"]
}

插件中每一个访问者都有排序问题。
这意味着若是两次转译都访问相同的”程序”节点,则转译将按照 plugin 或 preset 的规则进行排序而后执行。

Plugin 会运行在 Preset 以前。 Plugin 会从第一个开始顺序执行。ordering is first to last. Preset 的顺序则恰好相反(从最后一个逆序执行)。

相关文章
相关标签/搜索