webpack 性能優(yōu)化

目的:1或颊、優(yōu)化開發(fā)體驗(yàn) 2城菊、優(yōu)化輸出質(zhì)量

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

提升效率
優(yōu)化構(gòu)建速度
優(yōu)化使?體驗(yàn)

2其做、優(yōu)化輸出質(zhì)量

優(yōu)化要發(fā)布到線上的代碼顶考,減少?戶能感知到的加載時(shí)間
提升代碼性能,性能好妖泄,執(zhí)?就快

01 縮小處理文件的范圍 loader

test include exclude三個(gè)配置項(xiàng)來縮?loader的處理范圍

02 resolve.modules配置

指明第三方模塊安裝的路徑驹沿, 指定node_modules的位置

03 優(yōu)化resolve.alias配置

置通過別名來將原導(dǎo)?路徑映射成?個(gè)新的導(dǎo)?路徑,避免查找路徑的耗時(shí)

04 resolve.extensions配置

在導(dǎo)?語句沒帶?件后綴時(shí)蹈胡,webpack會(huì)?動(dòng)帶上后綴后渊季,去嘗試查找?件是否存在。

extensions:['.js','.json','.jsx','.ts']
  • 后綴嘗試列表盡量的?
  • 導(dǎo)?語句盡量的帶上后綴罚渐。

05 使?externals優(yōu)化cdn靜態(tài)資源

使?時(shí)却汉,仍然可以通過 import 的?式去引?(如 import $ from 'jquery' ),并且希望webpack 不會(huì)對(duì)其進(jìn)?打包荷并,此時(shí)就可以配置 externals 合砂。

06 使?靜態(tài)資源路徑publicPath(CDN)

##webpack.config.js
output:{
 publicPath: '//cdnURL.com', //指定存放JS?件的CDN地址
}

07 MiniCssExtractPlugin 完成抽離css

08 html-webpack-plugin 壓縮html

09 development vs Production模式區(qū)分打包

npm install webpack-merge -D
const merge = require("webpack-merge")
const commonConfig = require("./webpack.common.js")
const devConfig = {
 ...
}
module.exports = merge(commonConfig,devConfig)
//package.js
"scripts":{
 "dev":"webpack-dev-server --config ./build/webpack.dev.js",
 "build":"webpack --config ./build/webpack.prod.js"
}

10 tree Shaking

Dead Code ?般具有以下?個(gè)特征

  • 代碼不會(huì)被執(zhí)?,不可到達(dá)
  • 代碼執(zhí)?的結(jié)果不會(huì)被?到
  • 代碼只會(huì)影響死變量(只寫不讀)
  • Js tree shaking只?持ES module的引??式T粗t嫖薄!谈息!
npm i glob-all purify-css purifycss-webpack --save-dev

develpoment的tree shaking是不?效的

11 代碼分割 code Splitting

optimization:{
 //幫我們?動(dòng)做代碼分割
 splitChunks:{
 chunks:"all",//默認(rèn)是?持異步缘屹,我們使?all
 } 
 },

12 使??具量化

  • speed-measure-webpack-plugin:可以測量各個(gè)插件和 loader 所花費(fèi)的時(shí)間
  • webpack-bundle-analyzer:分析webpack打包后的模塊依賴關(guān)系

13 HardSourceWebpackPlugin , 打包第三?類庫 優(yōu)化構(gòu)建性能

  • 提供中間緩存的作?
  • ?次構(gòu)建沒有太?的變化
  • 第?次構(gòu)建時(shí)間就會(huì)有較?的節(jié)省
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin')
const plugins = [
 new HardSourceWebpackPlugin()
]

14 使?happypack并發(fā)執(zhí)?任務(wù)

運(yùn)?在 Node.之上的Webpack是單線程模型的黎茎,也就是說Webpack需要?個(gè)?個(gè)地處理任務(wù)囊颅,不能同時(shí)處理多個(gè)任務(wù)当悔。 Happy Pack 就能讓W(xué)ebpack將任務(wù)分解給多個(gè)?進(jìn)程去并發(fā)執(zhí)?傅瞻,?進(jìn)程處理完后再將結(jié)果發(fā)送給主進(jìn)程。從?發(fā)揮多核 CPU 電腦的威?盲憎。
共享進(jìn)程功能慎用:項(xiàng)目較少的時(shí)候嗅骄,開啟happyPack和多線程都是需要時(shí)間的,有時(shí)候你會(huì)發(fā)現(xiàn)你構(gòu)建的時(shí)間反而增加了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末饼疙,一起剝皮案震驚了整個(gè)濱河市溺森,隨后出現(xiàn)的幾起案子慕爬,更是在濱河造成了極大的恐慌,老刑警劉巖屏积,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件医窿,死亡現(xiàn)場離奇詭異,居然都是意外死亡炊林,警方通過查閱死者的電腦和手機(jī)姥卢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渣聚,“玉大人独榴,你說我怎么就攤上這事∞戎Γ” “怎么了棺榔?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隘道。 經(jīng)常有香客問我症歇,道長,這世上最難降的妖魔是什么谭梗? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任当船,我火速辦了婚禮,結(jié)果婚禮上默辨,老公的妹妹穿的比我還像新娘德频。我一直安慰自己,他們只是感情好缩幸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布壹置。 她就那樣靜靜地躺著,像睡著了一般表谊。 火紅的嫁衣襯著肌膚如雪钞护。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天爆办,我揣著相機(jī)與錄音难咕,去河邊找鬼。 笑死距辆,一個(gè)胖子當(dāng)著我的面吹牛余佃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播跨算,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼爆土,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了诸蚕?” 一聲冷哼從身側(cè)響起步势,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤氧猬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后坏瘩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盅抚,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年倔矾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泉哈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡破讨,死狀恐怖丛晦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情提陶,我是刑警寧澤烫沙,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站隙笆,受9級(jí)特大地震影響锌蓄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撑柔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一瘸爽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铅忿,春花似錦剪决、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至峻凫,卻和暖如春渗鬼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荧琼。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工譬胎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人命锄。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓堰乔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親累舷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浩考,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351