官網(wǎng):http://babeljs.io/docs/usage/cli/
參考:https://www.excaliburhan.com/post/babel-preset-and-plugins.html
npm install babel-cli
安裝babel-cli包后,就可以在命令行中使用babel命令進(jìn)行文件編譯轉(zhuǎn)換操作。
babel XX.js --out-file YY.js (-o,轉(zhuǎn)換文件)
babel src --out-dir lib (-d,轉(zhuǎn)換目錄)
babel XX.js --watch --out-file YY.js (-w,實(shí)時(shí)轉(zhuǎn)換)
babel src --out-file script-compiled.js (將目錄編譯成一個(gè)文件)
babel src --out-dir lib --ignore spec.js,test.js(忽略文件)
babel src --out-dir lib --copy-files(文件原樣拷貝,不編譯)
babel script.js --out-file script-compiled.js --plugins=es2015,react(使用插件)
babel script.js --out-file script-compiled.js --presets=add-module-exports,transform-es2015-modules-amd(使用預(yù)設(shè))
babel --no-babelrc script.js --out-file script-compiled.js --presets=add-module-exports,transform-es2015-modules-amd(忽略.babelrc)
babel-node 進(jìn)入REPL環(huán)境(read-eval-print-loop)
babel-node XX.js 執(zhí)行某js文件
對(duì)于.babelrc的推薦設(shè)置:
{
"presets": [
"es2015",
"stage-0",
//"env"http://有時(shí)候會(huì)是env,env不僅可以轉(zhuǎn)換es6,還可以轉(zhuǎn)換es7\es8代碼到es5
],
"plugins": ["transform-runtime"]
}
對(duì)于presets和plugins的執(zhí)行順序,參見官網(wǎng):

· plugins優(yōu)先于presets執(zhí)行
· plugins按遞增順序執(zhí)行
· presets按倒序執(zhí)行(就是一堆plugins的預(yù)設(shè))
babel-core:
核心編譯器
babel-preset-env:
可以轉(zhuǎn)換es6\es7\es8代碼到es5
babel-preset-es2016:
只轉(zhuǎn)譯es6代碼到es5,與babel-preset-env的選擇可以視具體需求而定
babel-plugin-transform-runtime:
由于babel只轉(zhuǎn)換新的語法,而不轉(zhuǎn)換新的API,在項(xiàng)目中,為了使用新的API功能,就需要借助于transform-runtime插件。該插件的功能是:支持你使用Object.assign等實(shí)例方法、以及Promise、Set等新的API,但不支持使用 'abc'.includes('b') 等實(shí)例方法,要使用的話,還需要配合babel-polyfill包。
transform-runtime插件,每當(dāng)你使用Object.assign等API時(shí),都統(tǒng)一調(diào)用一個(gè)核心js,減少編譯中產(chǎn)生的重復(fù)的工具方法,減少包的體積。
總結(jié):相當(dāng)于工具方法的polyfill,不如polyfill轉(zhuǎn)譯的功能多。
另:要是安裝的eslint或者babel生效,要么要在package.json文件中字段聲明,要么在對(duì)應(yīng)目錄下有對(duì)應(yīng)的.eslintrc和.babelrc配置文件。