npm應(yīng)用之babel

1. 初始化環(huán)境

打開cmd(windows)或者終端(Mac百揭,Linux)聋迎,進(jìn)入項目文件夾飞涂,執(zhí)行:

// 命令行 輸入:
npm init

會得到如下提示語,并開始生成 package.json 文件:

This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. Use npm install <pkg> --save afterwards to install a package and save it as a dependency in the package.json file.
翻譯:該命令會指引你逐步創(chuàng)建一個 package.json 文件呀枢。這個創(chuàng)建過程只包含了那些最常用的條目胚股,并會給出盡可能有意義的默認(rèn)值。隨后你可以使用 npm install <pkg> --save命令安裝一個 package (包) 并將其保存為 package.json 文件中的 dependencies生產(chǎn)依賴裙秋,對應(yīng) devDependencies開發(fā)依賴) 條目的一項琅拌。

接下來缨伊,命令行會指引你一步一步設(shè)置 name, version, decription 等等,你可以一路回車下去进宝,因為日后你還可以輕松的通過編輯器在 package.json 文件中對這些條目進(jìn)行更改刻坊。如果你打算這么干,我可以推薦給你一種更便捷的初始化命令:

// 命令行 輸入:
npm init -y

這樣你就等于告訴了cmd或者終端:我同意你所有的默認(rèn)值党晋,趕快幫我生成 package.json 文件吧谭胚。這跟你執(zhí)行npm init后一路回車的效果是一樣的。

2. 安裝 babel-cli 模塊未玻,并對 babel 進(jìn)行環(huán)境設(shè)置

在cmd或者終端執(zhí)行(這里我用cnpm代替了npm灾而,如果沒有cnpm需要先全局安裝和配置cnpm):

// 命令行 輸入:
cnpm install babel-cli --save-dev

這樣會在項目文件夾下生成一個node_modules文件夾,并在package.json文件里添加一個devDependencies屬性扳剿,該屬性的值是一個對象旁趟,對象里會包含一個babel-cli的屬性和對應(yīng)的類似^6.24.1的屬性值。這說明我們已經(jīng)安裝了babel模塊庇绽。

下面需要對babel進(jìn)行環(huán)境設(shè)置锡搜,該設(shè)置文件名為.babelrc。在項目文件夾下新建一個.babelrc文件敛劝,打開該文件,進(jìn)行如下設(shè)置:

// .babelrc 文件內(nèi)容
{
  "presets" : ["es2015"]
}

在命令行內(nèi)安裝 .babelrc 文件內(nèi)設(shè)置的預(yù)置項(例如:這里是es2015):

// 命令行 輸入:
cnpm install --save-dev babel-preset-es2015

3. 將 es2015 語法編譯為 es5 語法 (單文件)

在項目文件夾下新建一個名為es6.js文件纷宇,編寫內(nèi)容為:

// es6.js 文件內(nèi)容
let num = 10;

在命令行內(nèi)執(zhí)行:

// 命令行 輸入:
babel es6.js

這時夸盟,命令行工具會顯示:

// 命令行 生成:
"use strict";

var num = 10;

但是我們需要babel工具幫我們把編譯過的文件保存下來,這是我們需要在命令行輸入:

// 命令行 輸入:
babel es6.js --out-file es5.js

或者使用簡寫方式:

// 命令行 輸入:
babel es6.js -o es5.js

這時像捶,項目文件夾下就會生成一個名為es5.js的文件上陕,文件內(nèi)容為:

// es5.js 內(nèi)容:
"use strict";

var num = 10;

4. 將 es2015 語法編譯為 es5 語法 (批量)

在項目文件夾下新建一個名為src的文件夾,并在該文件夾下創(chuàng)建index.js文件拓春,同樣用es2015的語法編寫內(nèi)容為:

// src 文件夾下的 index.js 文件內(nèi)容
let num = 10;

在命令行內(nèi)執(zhí)行:

// 命令行 輸入:
babel src --out-dir build

或者使用簡寫方式:

// 命令行 輸入:
babel src -d build

這時释簿,項目文件夾下就會生成一個名為build的文件夾,該文件夾下有一個名為index.js的文件硼莽,文件內(nèi)容為:

// build 文件夾下的 index.js 文件內(nèi)容
"use strict";

var num = 10;

5. 設(shè)置 babel 自動編譯

在開發(fā)過程中庶溶,我們需要實時編譯一個文件,只需在命令行輸入:

// 命令行 輸入:
babel --watch src --out-dir build

或者使用簡寫方式:

// 命令行 輸入:
babel --watch src --d build

這時懂鸵,每當(dāng)我們保存src文件夾下的index.js文件時偏螺,babel工具就會執(zhí)行一次編譯,更新build文件夾下的index.js文件并在命令行顯示一次:

// 命令行 顯示:
src\index.js -> build\index.js

在命令行工具中按下ctrl+c即可終止自動編譯功能匆光。

6. 在 package.json 文件中命名具體的命令

我們可以看到套像,一個babel模塊就有很多種命令,雖然有些命令可以簡寫终息,但每次手動輸入還是比較麻煩夺巩。并且贞让,在團(tuán)隊開發(fā)中,我們通常不需要把build文件夾和node_modules文件夾上傳柳譬,我們的同伴就應(yīng)該能獲取到跟我們本地電腦上一樣的項目文件喳张。怎么實現(xiàn)呢?答案就是在package.json文件中命名具體的命令征绎,讓我們的同伴通過簡單的命令達(dá)到目的蹲姐。具體如下:

// package.json 文件中 scripts 屬性
"scripts": {
    "build": "babel src -d lib"
  },

這時,只要有src文件夾和package.json文件人柿,我們只需在命令行內(nèi)執(zhí)行:

// 命令行 輸入:
npm run build

就能執(zhí)行將src文件夾中的文件用babel編譯并保存至lib文件夾(自動創(chuàng)建)中柴墩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凫岖,隨后出現(xiàn)的幾起案子江咳,更是在濱河造成了極大的恐慌,老刑警劉巖哥放,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歼指,死亡現(xiàn)場離奇詭異,居然都是意外死亡甥雕,警方通過查閱死者的電腦和手機(jī)踩身,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來社露,“玉大人挟阻,你說我怎么就攤上這事∏偷埽” “怎么了附鸽?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞒瘸。 經(jīng)常有香客問我坷备,道長,這世上最難降的妖魔是什么情臭? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任省撑,我火速辦了婚禮,結(jié)果婚禮上俯在,老公的妹妹穿的比我還像新娘丁侄。我一直安慰自己,他們只是感情好朝巫,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布鸿摇。 她就那樣靜靜地躺著,像睡著了一般劈猿。 火紅的嫁衣襯著肌膚如雪拙吉。 梳的紋絲不亂的頭發(fā)上潮孽,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機(jī)與錄音筷黔,去河邊找鬼往史。 笑死,一個胖子當(dāng)著我的面吹牛佛舱,可吹牛的內(nèi)容都是我干的椎例。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼请祖,長吁一口氣:“原來是場噩夢啊……” “哼订歪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肆捕,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤刷晋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后慎陵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眼虱,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年席纽,在試婚紗的時候發(fā)現(xiàn)自己被綠了捏悬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡润梯,死狀恐怖过牙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仆救,我是刑警寧澤抒和,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布矫渔,位于F島的核電站彤蔽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏庙洼。R本人自食惡果不足惜顿痪,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望油够。 院中可真熱鬧蚁袭,春花似錦、人聲如沸石咬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鬼悠。三九已至删性,卻和暖如春亏娜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹬挺。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工维贺, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巴帮。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓溯泣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親榕茧。 傳聞我的和親對象是個殘疾皇子垃沦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

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