關(guān)于Bable

很久很就以前就使用過webpack,覺得是一個(gè)很神奇的構(gòu)建工具,當(dāng)時(shí)是跟著坑爹的文檔配置,很多的東西都不知其所以然,babel就是其中的一個(gè),在不知其所以然的情況下,很多的東西都記不住,最近耐心的看了下相關(guān)文檔,終于領(lǐng)悟到了那么一點(diǎn)點(diǎn),為了方便以后配置和使用遂作記錄。

  • 全局配置babel-cli
npm install babel-cli -g //全局安裝babel  這樣的話,就可以在命令行中直接調(diào)用babel命令

為什么就可以用babel命令了呢?是因?yàn)樵趎pm目錄C:\Users\Administrator\AppData\Roaming\npm里面會(huì)生成一個(gè)babel.cmd文件,打開你會(huì)發(fā)現(xiàn)還有node.cmd文件。若是打開沒有發(fā)現(xiàn)的話,是因?yàn)镻C沒有設(shè)置顯示隱藏文件(做開發(fā)最好是顯示隱藏文件名還有隱藏后綴)。

  • 在項(xiàng)目的文件夾中安裝babel需要的轉(zhuǎn)碼規(guī)則集
$ npm install --save-dev babel-preset-latest    //最新的轉(zhuǎn)碼規(guī)則

#不同階段的轉(zhuǎn)碼規(guī)則(根據(jù)需要安裝)
$ 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

關(guān)于不同階段的轉(zhuǎn)碼規(guī)則理解這個(gè)是要了解一段歷史,簡(jiǎn)單來說就是ES6是2015年6月發(fā)布的,TC39協(xié)會(huì)決定每年的6月份升級(jí)下js語法規(guī)則,全球的每個(gè)人都可以向TC39提出議案,議案要經(jīng)歷4個(gè)階段,TC39成員需要開會(huì)決定議案是否可行,基本上到了stage-2,這個(gè)議案幾乎就毫無懸念的成為下一個(gè)版本。很多的人叫ES6叫做ES2015,這個(gè)沒毛病,后面又聽到什么ES2017,ES2018...也沒有毛??;但是還有叫ES7,ES8,那就有點(diǎn)瘋狂了,如果每年都升級(jí)一個(gè)版本的話,js這個(gè)語言更新的頻率也就太快了,本人更愿意接受后面的版本叫做ES6.x的觀點(diǎn)。

  • 在項(xiàng)目的文件夾中配置.babelrc文件(.babelrc文件是一個(gè)json文件)
  {
      "presets":[ 
                      "latest",
                      "stage-2"
                   ],            //這里面配置選碼規(guī)則
      "plugins":[]             //這里面配置一些插件,例如壓縮代碼等
  }
  • 命令行轉(zhuǎn)碼babel-cli
# 轉(zhuǎn)碼結(jié)果輸出到標(biāo)準(zhǔn)輸出
$ babel example.js

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

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

# -s 參數(shù)生成source map文件
$ babel src -d lib -s

上面代碼是在全局環(huán)境下,進(jìn)行 Babel 轉(zhuǎn)碼。這意味著,如果項(xiàng)目要運(yùn)行,全局環(huán)境必須有 Babel,也就是說項(xiàng)目產(chǎn)生了對(duì)環(huán)境的依賴。另一方面,這樣做也無法支持不同項(xiàng)目使用不同版本的 Babel。解決辦法是將babel-cli安裝在項(xiàng)目之中。

# 安裝
$ npm install --save-dev babel-cli
  • 改寫 package.json文件
{
  // ...
  "devDependencies": {
    "babel-cli": "^6.0.0"
  },
  "scripts": {
    "build": "babel src -d lib"    //src 和 lib表示需要轉(zhuǎn)碼的目錄文件夾以及指定生成的文件夾
  },
}

轉(zhuǎn)碼的時(shí)候,就執(zhí)行下面的命令。

$ npm run build

完畢!~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 webpack2和vue2已經(jīng)不是新鮮東西了,滿大街的文章在講解webpack和vue,但是很多內(nèi)容寫的不是...
    技術(shù)宅小青年閱讀 6,691評(píng)論 4 43
  • Babel 入門指南 ?:warning: 注意:Babel 可以與很多構(gòu)建工具(如 Browserify、Gru...
    靜默虛空閱讀 2,659評(píng)論 0 4
  • 轉(zhuǎn)自: Babel 入門教程 阮一峰鏈接地址:http://www.ruanyifeng.com/blog/201...
    webllw閱讀 1,317評(píng)論 0 0
  • Babel 入門教程 (說明:本文選自我的新書《ES6 標(biāo)準(zhǔn)入門(第二版)》的第一章《ECMAScript 6簡(jiǎn)介...
    runner123閱讀 1,056評(píng)論 0 2
  • 人生開口笑難逢,不討便宜不發(fā)笑,屈死好人笑死賊,打一個(gè)哭,引一個(gè)笑,惱在心里笑在臉上,一個(gè)廟前哭,一個(gè)廟后笑,人前...
    4186758683d7閱讀 311評(píng)論 0 0

友情鏈接更多精彩內(nèi)容