ES6 轉(zhuǎn)碼為 ES5 (Babel)

Babel 6 與之前版本的區(qū)別

之前版本只需安裝一個(gè) babel蟹漓,但在 babel 6 中,將 babel 拆分成兩個(gè)包:babel-cli 和 babel-core家肯。如果想要在CLI(終端或REPL)使用 babel 就下載 babel-cli菱属,如果在 node 中 使用就下載 babel-core肛宋。

Babel轉(zhuǎn)碼

1. 直接安裝 babel 法:

1.1)首先全局安裝 babel

npm install -g @babel/cli
<!--
  也可以通過直接將 babel 安裝到項(xiàng)目中,在項(xiàng)目根目錄下執(zhí)行下面命令榨馁,同時(shí)它會(huì)在 package.json 文件中的 devDependencies 中加入 babecli
  在執(zhí)行安裝之前憨栽,要先在項(xiàng)目根目錄下新建一個(gè) package.json 文件
 -->

npm install --save-dev @babel/cli
<!-- 【注意項(xiàng)目目錄中不能含有中文名】 -->
<!-- 【如果安裝時(shí),出現(xiàn) npm ERR Path C:\Users\Administrator\AppData\Roaming\npm\node_modules\babel-cli..... 路徑之類的錯(cuò)誤翼虫,就把babel-cli文件夾刪除了屑柔,然后重新安裝】 -->

1.2) babel 的配置文件是 .babelrc,存放在項(xiàng)目的根目錄珍剑。使用 babel 的第一步掸宛,就是配置這個(gè)文件。

{
  "presets": [],
  "plugins": []
}

1.3) presets 字段設(shè)定轉(zhuǎn)碼規(guī)則招拙,官方提供以下的會(huì)澤集旁涤,可以根據(jù)需要安裝。
 點(diǎn)擊此處到 babel 中文官網(wǎng) presets 配置頁(yè)面:Babel Plugins

# ES2015 轉(zhuǎn)碼規(guī)則
  npm install --save-dev babel-preset-es2015
# react 轉(zhuǎn)碼規(guī)則
  npm install --save-dev babel-preset-react
# ES7 不同階段語法提案的轉(zhuǎn)碼規(guī)則(共有4個(gè)階段)迫像,選裝一個(gè)
  npm install --save-dev babel-preset-stage-0
  npm install --save-dev babel-preset-stage-1
  npm install --save-dev babel-preset-stage-2
  npm install --save-dev babel-preset-stage-3

1.4) 根據(jù)官網(wǎng)的提示劈愚,當(dāng)我們用 npm 安裝好這些插件工具之后,我們需要將這些規(guī)則加入到 .babelrc 中去:

{
  "presets": [
    "es2015",
    "react",
    "stage-2"
    <!-- 根據(jù)你安裝的插件闻妓,寫入對(duì)應(yīng)的規(guī)則 -->
  ],
  "plugins": []
}

1.5) 轉(zhuǎn)碼菌羽、轉(zhuǎn)碼規(guī)則:

# 轉(zhuǎn)碼結(jié)果輸出到終端
  babel name.js

# 轉(zhuǎn)碼結(jié)果寫入一個(gè)文件
  babel es6.js --out-file es5.js
  # 或者
  babel es6.js -o es5.js
  <!-- --out-file 或 -o 參數(shù)指定輸出文件 -->

# 要在 每次文件修改后 編譯該文件,請(qǐng)使用 --watch 或 -w 參數(shù):
  babel es6.js --watch --out-file es5.js

# 整個(gè)目錄轉(zhuǎn)碼
  babel src --out-dir lib
  # 或者
  babel src -d lib
<!-- --out-dir 或 -d 參數(shù)指定輸出目錄 -->

# -s 參數(shù)生成 source map 文件
  babel src -d lib -s
2. 工具配置法:

實(shí)際上由缆,我們可以通過很多工具實(shí)現(xiàn) ES6 的轉(zhuǎn)碼配置注祖,比如猾蒂,常見的 grunt、gulp是晨、webpack 和 node 等肚菠。下面我就簡(jiǎn)單的說下我較為熟悉的 gulp 配置法。
 點(diǎn)擊此處到 Babel 中文官網(wǎng) Tool 配置頁(yè)面:Babel Tool

2.1) 首先罩缴,我們需要在項(xiàng)目中安裝 gulp:

npm install gulp --save-dev

2.2) 然后蚊逢,我們需要在項(xiàng)目中安裝 gulp-babel:

npm install --save-dev gulp-babel

2.3) 編寫 gulpfile.js 文件,文件內(nèi)容如下:

var gulp = require("gulp");
var babel = require("gulp-babel");

gulp.task("default", function (){
  return gulp.src("src/name.js").pipe(babel()).pipe(gulp.dest("lib"));
});

當(dāng)我們?cè)诋?dāng)前目錄下運(yùn)行如下命令箫章,會(huì)發(fā)現(xiàn)原來在 src 文件夾中的 name.js(按照 ES6 標(biāo)準(zhǔn)編寫的)文件已經(jīng)被轉(zhuǎn)碼成 ES5 標(biāo)準(zhǔn)的 name.js烙荷,并放在了 lib 文件夾里邊。

gulp default
# 或者
gulp
在線轉(zhuǎn)碼

Babel 提供一個(gè) REPL 在線編輯器檬寂,可以在線將 ES6 代碼轉(zhuǎn)為 ES5 代碼终抽。轉(zhuǎn)換后的代碼,可以直接作為 ES5 代碼插入網(wǎng)頁(yè)運(yùn)行桶至。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昼伴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子镣屹,更是在濱河造成了極大的恐慌亩码,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件野瘦,死亡現(xiàn)場(chǎng)離奇詭異描沟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鞭光,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門吏廉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惰许,你說我怎么就攤上這事席覆。” “怎么了汹买?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵佩伤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我晦毙,道長(zhǎng)生巡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任见妒,我火速辦了婚禮孤荣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己盐股,他們只是感情好钱豁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疯汁,像睡著了一般牲尺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幌蚊,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天谤碳,我揣著相機(jī)與錄音,去河邊找鬼霹肝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛塑煎,可吹牛的內(nèi)容都是我干的沫换。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼最铁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼讯赏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冷尉,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤漱挎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后雀哨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磕谅,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年雾棺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膊夹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捌浩,死狀恐怖放刨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尸饺,我是刑警寧澤进统,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站浪听,受9級(jí)特大地震影響螟碎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜迹栓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一抚芦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦叉抡、人聲如沸尔崔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)季春。三九已至,卻和暖如春消返,著一層夾襖步出監(jiān)牢的瞬間载弄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工撵颊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宇攻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓倡勇,卻偏偏與公主長(zhǎng)得像逞刷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妻熊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • babel官網(wǎng) babel 介紹 Babel 是一個(gè)通用的多用途 JavaScript 編譯器夸浅。通過 Babel ...
    鋒享前端閱讀 1,820評(píng)論 0 10
  • Babel是一個(gè)廣泛使用的轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼扔役,從而在現(xiàn)有環(huán)境執(zhí)行帆喇。 這意味著,你可以現(xiàn)在就用 ...
    yichen_china閱讀 1,312評(píng)論 0 3
  • babel 6與之前版本的區(qū)別: 之前版本只要安裝一個(gè)babel就可以用了亿胸,所以之前的版本包含了一大堆的東西坯钦,這也...
    _花閱讀 1,573評(píng)論 0 2
  • Babel 入門指南 ?:warning: 注意:Babel 可以與很多構(gòu)建工具(如 Browserify、Gru...
    靜默虛空閱讀 2,547評(píng)論 0 4
  • Babel 是一個(gè)廣泛使用的 ES6 轉(zhuǎn)碼器侈玄,可以將 ES6 代碼轉(zhuǎn)為 ES5 代碼葫笼,從而在現(xiàn)有環(huán)境執(zhí)行。這意味著...
    DiligentLeo閱讀 562評(píng)論 0 1