嘗試了webpack陵究,收獲很大

在學前端的過程中纪铺,一直對文件的引入有疑問,感覺如果只是把<script>轨淌、<style>堆疊在一起的話很混亂,盡管可以寫注釋,但引入文件一多還是容易傻傻分不清震束。

后來逐漸了解到前端要想應用化,那么各種資源的加載就會變得復雜当犯,這時就需要模塊化垢村。

查看一番后,了解到主要有CommonJS這種同步模塊化規(guī)范和AMD這種異步模塊化規(guī)范嚎卫。前者多用于服務端嘉栓,后者則是客戶端,只不過不是絕對的拓诸,CommonJS也有面對客戶端的實現Browserify侵佃,AMD也有面向服務端的實現RequireJS(同時也用于客戶端)。還有CMD奠支,UMD馋辈,ES6模塊,這里不深入展開倍谜。

那么大概就是這么一個情況迈螟。之后又知道了webpack,到處都能看到對它的介紹尔崔,最近開始著手學習答毫,偶遇了一個簡潔,精煉的webpack教程(Webpack 中文指南)您旁。

教程開頭簡單回顧了一下前端模塊化過程后烙常,提到了期望的模塊系統(tǒng)是什么樣子:

可以兼容多種模塊風格,盡量可以利用已有的代碼,不僅僅只是 JavaScript 模塊化蚕脏,還有 CSS侦副、圖片、字體等資源也需要模塊化驼鞭。

之后就開始提及webpack是如何滿足了這些期望秦驯,更多細節(jié)教程里可見。

簡單跟著教程里的最簡項目使用了一下webpack后挣棕,我理解的模塊結構大致如下(沒研究過原理译隘,教程也沒講,所以很可能是錯的):

最上面的bundle.js文件是最終所有模塊被編譯后的匯總模塊洛心,而entry.js則類似html文件里的index.html文件固耘,是一個初始文件,或者說主頁面文件词身,其他的功能模塊厅目,比如圖里最下面的module1,module2法严,module3 损敷,都在entry.js里用require引入。至于entry.js和bundle.js的關系則是在一個webpack.config.json文件里設置深啤。

至于還有一個loader拗馒,也就是加載器或者叫資源轉換器則不贅述,參考教程就行溯街,不過這個教程也只是大概介紹并演示一遍使用诱桂。

然后,驚喜的來了苫幢,webpack的一個功能點使我真正產生了寫這篇記錄的沖動访诱。到不是這個功能讓我完整的領會了webpack,其實就只是一個小功能——觀察者模式韩肝,它讓我體會到了實實在在的效率提升触菜。這個模式可以根據你的代碼改動,實時刷新網頁上的變動哀峻。就這一點就讓我感動了涡相。

具體實現就是一行命令。在前面配置好項目結構剩蟀,寫好配置文件后催蝗,執(zhí)行以下命令即可:

當然,使用 webpack-dev-server開發(fā)服務是一個更好的選擇育特。

它將在 localhost:8080 啟動一個 express 靜態(tài)資源 web 服務器丙号,并且會以監(jiān)聽模式自動運行 webpack先朦。

在瀏覽器打開 http://localhost:8080/http://localhost:8080/webpack-dev-server/ 可以瀏覽項目中的頁面和編譯后的資源輸出,

并且通過一個 socket.io 服務實時監(jiān)聽它們的變化并自動刷新頁面犬缨。

安裝

$ npm install webpack-dev-server -g

運行

$ webpack-dev-server --progress --colors

其實就是開了個本地服務器喳魏,然后監(jiān)控項目文件的變化,實時編譯怀薛。但功能雖簡單刺彩,實際使用時的效率提升真不是一點半點,絕對可以說是數量級的提升枝恋。

比如在打開這個模式之后创倔,再在瀏覽器那輸入localhost:8080:

然后我只在一個css模塊文件里改動這個背景顏色,從yellow變?yōu)閎lue焚碌。

本來是yellow
然后改為blue

剛在編輯器按下保存快捷鍵command+s畦攘,網頁也立刻被渲染成了藍色背景:

背景把之前的字體給遮住了……

不多說了,總之這功能就是很爽……

最后呐能,接下來要做的則是參考更多的教程文章念搬,更好的使用webpack。

比如參考簡書的這篇:入門Webpack摆出,看這篇就夠了

對上面這篇的補充:補充

補充二

再記錄一張webpack運行流程圖:

webpack生命周期

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市首妖,隨后出現的幾起案子偎漫,更是在濱河造成了極大的恐慌,老刑警劉巖有缆,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件象踊,死亡現場離奇詭異,居然都是意外死亡棚壁,警方通過查閱死者的電腦和手機杯矩,發(fā)現死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袖外,“玉大人史隆,你說我怎么就攤上這事÷椋” “怎么了泌射?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鬓照。 經常有香客問我熔酷,道長,這世上最難降的妖魔是什么豺裆? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任拒秘,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘躺酒。我一直安慰自己咙轩,他們只是感情好,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布阴颖。 她就那樣靜靜地躺著活喊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪量愧。 梳的紋絲不亂的頭發(fā)上钾菊,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音偎肃,去河邊找鬼煞烫。 笑死,一個胖子當著我的面吹牛累颂,可吹牛的內容都是我干的滞详。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼紊馏,長吁一口氣:“原來是場噩夢啊……” “哼料饥!你這毒婦竟也來了?” 一聲冷哼從身側響起朱监,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤岸啡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赫编,有當地人在樹林里發(fā)現了一具尸體巡蘸,經...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年擂送,在試婚紗的時候發(fā)現自己被綠了悦荒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘹吨,死狀恐怖搬味,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情躺苦,我是刑警寧澤身腻,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站匹厘,受9級特大地震影響嘀趟,放射性物質發(fā)生泄漏。R本人自食惡果不足惜愈诚,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一她按、第九天 我趴在偏房一處隱蔽的房頂上張望牛隅。 院中可真熱鬧,春花似錦酌泰、人聲如沸媒佣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽默伍。三九已至,卻和暖如春衰琐,著一層夾襖步出監(jiān)牢的瞬間也糊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工羡宙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狸剃,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓狗热,卻偏偏與公主長得像钞馁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匿刮,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容