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 的順序則恰好相反(從最後一個逆序執行)。

相關文章
相關標籤/搜索