1. "babel-plugin-transform-runtime": "^6.23.0",
2. "babel-preset-es2015": "^6.24.1",
3. "babel-polyfill": "^6.26.0"
4. "babel-preset-stage-2": "^6.24.1",
https://google.github.io/traceur-compiler/demo/repl.html#
但是這個對于promise轉(zhuǎn)譯問題沒有解決。(有待發(fā)掘新功能);
babel-preset-es2015:
是一個babel的插件,用于將部分ES6 語法轉(zhuǎn)換為ES5 語法弃衍。轉(zhuǎn)換的語法包括:
- const let 轉(zhuǎn)換
- 箭頭函數(shù)的轉(zhuǎn)換
- 解構(gòu)賦值
- 反引號字符串拼接轉(zhuǎn)換等
const str1 = '小明';
const str2 = '學生';
const str3 = `${str1}是${str2}!`
編輯為
var str1 = '小明';
var str2 = '學生';
var str4 = str1 + '是' + str2 + '!';
并沒有對比如 Promise署照、generator、Set吗浩、Symbol建芙、Array.from、async 函數(shù)進行轉(zhuǎn)譯懂扼,需要babel-polify轉(zhuǎn)譯(例如報錯:regeneratorRuntime is not defined)
babel-plugin-transform-runtime
babel-plugin-transform-runtime 實際上是依賴babel-runtime
因為babel編譯es6到es5的過程中禁荸,babel-plugin-transform-runtime這個插件會自動polyfill es5不支持的特性,
這些polyfill包就是在babel-runtime這個包里
詳細說明可以參考http://www.reibang.com/p/7bc7b0fadfc2
babel-preset-stage-2
對于異步函數(shù)的轉(zhuǎn)譯(async);
es6轉(zhuǎn)譯為es5過程:
安裝node環(huán)境
創(chuàng)建文件夾es6test, 文件夾里創(chuàng)建src文件夾, 進入src創(chuàng)建index.js

進入es6test執(zhí)行npm init,按照提示初始化項目,完成后會有package.json
執(zhí)行cnpm install babel-cli babel-plugin-transform-runtime babel-polyfill babel-preset-es2015 --save-dev
根目錄新建文件.babelrc
{
"presets": [
"es2015"
],
"plugins": [
[
"transform-runtime",
{
"helpers": false,
"polyfill": true,
"regenerator": true,
"moduleName": "babel-runtime"
}
]
]
}
package.json在scripts中阀湿,配置"build": "babel src --out-dir dist"
執(zhí)行npm run build src中的js會轉(zhuǎn)譯到dist中赶熟。