搭建es6熱更新環(huán)境 2018-07-31

一、構(gòu)建環(huán)境

1.es6瀏覽器不支持,先要構(gòu)建支持es6的環(huán)境

項(xiàng)目構(gòu)建工具:

gulp:自動(dòng)化工具

? ? ? ? ? 中文網(wǎng)址:https://www.gulpjs.com.cn/

babel:編譯工具,編譯es6 ?

? ? ? ? ? 中文網(wǎng)址:https://www.babeljs.cn/

webpack:構(gòu)建工具

? ? ? ? ? ? ? 中文網(wǎng)址:https://www.webpackjs.com/


2.創(chuàng)建項(xiàng)目文件夾


APP:前端代碼(views ?css ?js)

Server:服務(wù)端文件

Tasks:構(gòu)建工具目錄

Views/index.ejs:模板文件,ejs后綴是因?yàn)檫@個(gè)文件通過nodejs的express框架做的,他的模板引擎就是 ejs模板引擎

Tasks/Util:放置常見腳本


3.安裝

? ?npm install nodejs -g ? ? ? ? ? ?鏈接:http://nodejs.cn/

???npm install express -g ? ? ? ? ? 鏈接:http://www.expressjs.com.cn/

???npm install -g express-generator


4.在server里執(zhí)行express ?-e ?.

Express: 腳手架

-e:使用ejs模板引擎

. :在當(dāng)前目錄執(zhí)行


執(zhí)行后的命令行:

根據(jù)命令行提示執(zhí)行:npm install ?


5. 初始化項(xiàng)目 npm init

? ? 回答問題之后生成對(duì)應(yīng)的package.json文件


6.創(chuàng)建gulp配置文件

執(zhí)行兩條命令:

touch gulpfile.babel.js :創(chuàng)建gulp配置文件(和gulp官網(wǎng)建議文件名(gulpfile.js)不一樣,因?yàn)榇隧?xiàng)目使用es6語法創(chuàng)建娇唯,需要使用babel編譯,文件名固定)

touch .babelrc (文件名固定):設(shè)置babel編譯工具的配置文件


7.配置babelrc

npm install babel-preset-env --save-dev

//此插件用于轉(zhuǎn)換es2015

babelrc文件內(nèi):

{ "presets": ["env"]}

//需要兼容到IE8需要進(jìn)行其他配置

注意: 因?yàn)?npm 2.x 下載依賴的關(guān)系寂玲,在使用 npm 2.x 運(yùn)行 Babel 6.x 的項(xiàng)目時(shí)塔插,可能會(huì)引起性能問題。 你可以通過切換到 npm 3.x 或在 npm 2.x 上使用?dedupe?選項(xiàng)來解決這個(gè)問題拓哟。


8.配置gulpfile.babel.js

將tasks下面的包都引進(jìn)來執(zhí)行


二想许、構(gòu)建腳本(文件都放在tasks里面)

1.在tasks/util下創(chuàng)建args.js

引入args包定義參數(shù)(處理命令行參數(shù))

注意輸出模塊:


2.tasks下創(chuàng)建scripts.js (js腳本構(gòu)建)

(1)寫好依賴項(xiàng)

?注:gulp-util是gulp 常用工具函數(shù)集合

gulp官方插件:https://gulpjs.com/plugins/


(2)下載依賴項(xiàng)


(3)構(gòu)建腳本

注:loader改為babel-loader


3.創(chuàng)建pages.js (模板頁面塊構(gòu)建腳本)


4.創(chuàng)建css.js(處理css構(gòu)建腳本)


5.創(chuàng)建server.js ( 服務(wù)器構(gòu)建腳本 )


三、讓任務(wù)自動(dòng)完成

要實(shí)現(xiàn)的目標(biāo):讓原始文件自動(dòng)編譯到server執(zhí)行目錄中

(都放在tasks里面)

1.創(chuàng)建brower.js (瀏覽器監(jiān)聽相關(guān)文件)


2.創(chuàng)建clean.js (建立清空指定目錄文件的任務(wù))

原因:在執(zhí)行上面的任務(wù)將es6轉(zhuǎn)換成es5或者es3時(shí)断序,會(huì)將源文件拷貝編譯再覆蓋到目錄文件中流纹,安全起見需要在每次覆蓋之前將原目錄清空


3.創(chuàng)建build.js (定制執(zhí)行順序規(guī)則)

目的:將所有的gulp任務(wù)關(guān)聯(lián)起來,定制執(zhí)行順序規(guī)則逢倍,server啟動(dòng)之前所有文件都應(yīng)該編譯完成


4.創(chuàng)建default.js

原因:命令行執(zhí)行g(shù)ulp時(shí)捧颅,后面不接任務(wù)名,就會(huì)默認(rèn)執(zhí)行default.js

這個(gè)任務(wù)必須要存在较雕。


5.補(bǔ)充構(gòu)建腳本需要的安裝包

npm install babel-polyfill babel-register connect-livereload del gulp-live-server gulp-sequence require-dir --save-dev



全部依賴包:

四、測(cè)試

執(zhí)行g(shù)ulp --watch 監(jiān)聽文件

在瀏覽器出入服務(wù)端口號(hào) localhost:3000,有效果證明成功


五挚币、熱更新

1.找到server下生成的app.js

找到這段代碼

在中間寫上

app.use(require('connect-livereload')());


注意安裝依賴包

2.測(cè)試:

編輯器代碼更改之后亮蒋,瀏覽器不需要刷新直接就可以自動(dòng)更新


最后:

注意:webpack新版本引用loader格式為

如果報(bào)錯(cuò)需要更改一下tasks/scripts.js文件


補(bǔ)充:指定下載插件某一版本

npm install webpack@1.15.0 --save-dev

?著作權(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
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颤绕。三九已至,卻和暖如春祟身,著一層夾襖步出監(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)容

  • *node下用express框架世杀,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的mvc *構(gòu)建工具:gulp / babel / webpack ...
    韓娜愛吃辣_前端程序媛閱讀 1,090評(píng)論 0 1
  • 安裝Gulp首先需要安裝Node.js,并在控制臺(tái)輸入$ npm install gulp -gMac端需要寫成$...
    LaBaby_閱讀 920評(píng)論 0 1
  • 對(duì)網(wǎng)站資源進(jìn)行優(yōu)化肝集,并使用不同瀏覽器測(cè)試并不是網(wǎng)站設(shè)計(jì)過程中最有意思的部分,但是這個(gè)過程中的很多重復(fù)的任務(wù)能夠使用...
    懵逼js閱讀 1,069評(píng)論 0 8
  • 5月29日上午蛛壳,在一曲優(yōu)雅的手語舞《禮》的欣賞表演中杏瞻,孟州市南莊鎮(zhèn)南莊小學(xué)首屆“成童禮”儀式拉開的帷幕所刀。 ...
    孟州市南莊小學(xué)閱讀 2,528評(píng)論 1 4
  • 游泳卡再不用真要作廢了。 喜歡接近體溫的水捞挥,不冰涼浮创。 恐水的我照例頭二百米緊張,四百五十米后才放松下來砌函。 千米后收...
    周湘泉閱讀 231評(píng)論 1 5