Webpack優(yōu)化

0、寫在前面

Webpack優(yōu)化可以分為優(yōu)化開發(fā)體驗(yàn)優(yōu)化輸出質(zhì)量兩部分

1偎快、優(yōu)化開發(fā)體驗(yàn)

優(yōu)化開發(fā)體驗(yàn)的目的是為了提升開發(fā)時(shí)的效率冯乘,其中又可以分為以下幾點(diǎn):

  1. 優(yōu)化構(gòu)建速度。在項(xiàng)目龐大時(shí)構(gòu)建耗時(shí)可能會(huì)變的很長晒夹,每次等待構(gòu)建的耗時(shí)加起來也會(huì)是個(gè)大數(shù)目裆馒。

    • 4-1 縮小文件搜索范圍

      • 4-1-1 在配置 Loader 時(shí)通過 include 去縮小命中范圍

      • 4-1-2 優(yōu)化 resolve.modules 配置,指明存放第三方模塊的絕對(duì)路徑丐怯,以減少尋找喷好,配置如下:

      • 4-1-3 優(yōu)化 resolve.mainFields 配置

      • 4-1-4 優(yōu)化 resolve.alias 配置

      • 4-1-5 優(yōu)化 resolve.extensions 配置
        在配置 resolve.extensions 時(shí)你需要遵守以下幾點(diǎn),以做到盡可能的優(yōu)化構(gòu)建性能:

        • 后綴嘗試列表要盡可能的小响逢,不要把項(xiàng)目中不可能存在的情況寫到后綴嘗試列表中绒窑。
        • 頻率出現(xiàn)最高的文件后綴要優(yōu)先放在最前面,以做到盡快的退出尋找過程舔亭。
        • 在源碼中寫導(dǎo)入語句時(shí)些膨,要盡可能的帶上后綴,從而可以避免尋找過程钦铺。例如在你確定的情況下把 require('./data') 寫成 require('./data.json')订雾。
      • 4-1-6 優(yōu)化 module.noParse 配置

    • 4-2 使用 DllPlugin
      為什么給 Web 項(xiàng)目構(gòu)建接入 動(dòng)態(tài)鏈接庫 的思想后,會(huì)大大提升構(gòu)建速度呢矛洞? 原因在于包含大量復(fù)用模塊的動(dòng)態(tài)鏈接庫只需要編譯一次洼哎,在之后的構(gòu)建過程中被動(dòng)態(tài)鏈接庫包含的模塊將不會(huì)在重新編譯烫映,而是直接使用動(dòng)態(tài)鏈接庫中的代碼。 由于動(dòng)態(tài)鏈接庫中大多數(shù)包含的是常用的第三方模塊噩峦,例如 react锭沟、react-dom,只要不升級(jí)這些模塊的版本识补,動(dòng)態(tài)鏈接庫就不用重新編譯族淮。

    • 4-3 使用 HappyPack
      在整個(gè) Webpack 構(gòu)建流程中,最耗時(shí)的流程可能就是 Loader 對(duì)文件的轉(zhuǎn)換操作了凭涂,因?yàn)橐D(zhuǎn)換的文件數(shù)據(jù)巨多祝辣,而且這些轉(zhuǎn)換操作都只能一個(gè)個(gè)挨著處理。(運(yùn)行在 Node.js 之上的 Webpack 是單線程模型的)
      HappyPack的核心原理就是把這部分任務(wù)分解到多個(gè)進(jìn)程去并行處理切油,從而減少了總的構(gòu)建時(shí)間蝙斜。

    • 4-4 使用 ParallelUglifyPlugin
      ParallelUglifyPlugin 會(huì)開啟多個(gè)子進(jìn)程,把對(duì)多個(gè)文件的壓縮工作分配給多個(gè)子進(jìn)程去完成澎胡,每個(gè)子進(jìn)程其實(shí)還是通過 UglifyJS去壓縮代碼孕荠,但是變成了并行執(zhí)行。 所以 ParallelUglifyPlugin 能更快的完成對(duì)多個(gè)文件的壓縮工作滤馍。

  2. 優(yōu)化使用體驗(yàn)岛琼。通過自動(dòng)化手段完成一些重復(fù)的工作,讓我們專注于解決問題本身巢株。

2阁苞、優(yōu)化輸出質(zhì)量

優(yōu)化輸出質(zhì)量的目的是為了給用戶呈現(xiàn)體驗(yàn)更好的網(wǎng)頁困檩,例如減少首屏加載時(shí)間、提升性能流暢度等那槽。 這至關(guān)重要悼沿,因?yàn)樵诨ヂ?lián)網(wǎng)行業(yè)競(jìng)爭(zhēng)日益激烈的今天,這可能關(guān)系到你的產(chǎn)品的生死骚灸。

優(yōu)化輸出質(zhì)量本質(zhì)是優(yōu)化構(gòu)建輸出的要發(fā)布到線上的代碼糟趾,分為以下幾點(diǎn):

  1. 減少用戶能感知到的加載時(shí)間,也就是首屏加載時(shí)間甚牲。

  2. 提升流暢度非驮,也就是提升代碼性能。

參考文章:
深入淺出 Webpack - 優(yōu)化

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雏赦,一起剝皮案震驚了整個(gè)濱河市劫笙,隨后出現(xiàn)的幾起案子芙扎,更是在濱河造成了極大的恐慌,老刑警劉巖填大,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戒洼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡允华,警方通過查閱死者的電腦和手機(jī)施逾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來例获,“玉大人,你說我怎么就攤上這事曹仗≌ヌ溃” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵怎茫,是天一觀的道長收壕。 經(jīng)常有香客問我,道長轨蛤,這世上最難降的妖魔是什么蜜宪? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮祥山,結(jié)果婚禮上圃验,老公的妹妹穿的比我還像新娘。我一直安慰自己缝呕,他們只是感情好澳窑,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著供常,像睡著了一般摊聋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栈暇,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天麻裁,我揣著相機(jī)與錄音,去河邊找鬼源祈。 笑死煎源,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的新博。 我是一名探鬼主播薪夕,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赫悄!你這毒婦竟也來了原献?” 一聲冷哼從身側(cè)響起馏慨,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姑隅,沒想到半個(gè)月后写隶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡讲仰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年慕趴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鄙陡。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冕房,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趁矾,到底是詐尸還是另有隱情耙册,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布毫捣,位于F島的核電站详拙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蔓同。R本人自食惡果不足惜饶辙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斑粱。 院中可真熱鬧弃揽,春花似錦、人聲如沸珊佣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咒锻。三九已至冷冗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惑艇,已是汗流浹背蒿辙。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滨巴,地道東北人思灌。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像恭取,于是被迫代替她去往敵國和親泰偿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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