摘要:所以我們應(yīng)該分析業(yè)務(wù)依賴(lài)和路由,盡可能將所有組件的公共依賴(lài)提取出來(lái)。文件分離文件分離主要是將圖片和從中分離。在生產(chǎn)環(huán)境下,可以考慮將圖片和從中分離。
Webpack 2中一些常見(jiàn)的優(yōu)化措施 分離第三方依賴(lài)
在開(kāi)發(fā)環(huán)境下, 通常會(huì)采取 HMR 模式來(lái)提高開(kāi)發(fā)效率. 但一般情況下, 我們只會(huì)更改自身的業(yè)務(wù)文件, 不會(huì)去更改第三方的依賴(lài), 但 webpack 在 rebuild 的時(shí)候, 依舊會(huì) build 所有的依賴(lài). 因而, 為減少 rebuild 的時(shí)間, 我們可以分離第三方依賴(lài), 在項(xiàng)目啟動(dòng)之前, 將其多帶帶打包和引入.
多進(jìn)程構(gòu)建Webpack的構(gòu)建過(guò)程是單進(jìn)程的,利用HappyPack可以讓loader對(duì)文件進(jìn)行多進(jìn)程處理,以此加快rebuild速度
提取公共的依賴(lài)模塊無(wú)論是單頁(yè)還是多頁(yè)應(yīng)用,在生產(chǎn)環(huán)境下,通常都會(huì)利用CommonsChunkPlugin插件來(lái)提供公共的依賴(lài)模塊。但是這種方式會(huì)導(dǎo)致兩個(gè)問(wèn)題:1.業(yè)務(wù)越復(fù)雜,第三方依賴(lài)會(huì)越多,vendor包會(huì)越大;2.沒(méi)有隔離業(yè)務(wù)路由組件,所有的路由都可能會(huì)去加載vendor,但并不是所有的路由組件都會(huì)依賴(lài)node_module下的所有模塊。所以我們應(yīng)該分析業(yè)務(wù)依賴(lài)和路由,盡可能將所有組件的公共依賴(lài)提取出來(lái)。
文件分離文件分離主要是將圖片和CSS從js中分離。圖片和CSS都是Webpack需要構(gòu)建的資源,通過(guò)某種配置,圖片可以以base64的方式混淆在js文件中,這會(huì)增加最終的bundle文件的大小。在生產(chǎn)環(huán)境下,可以考慮將圖片和css從js中分離。
在生產(chǎn)環(huán)境下,通過(guò)自定義插件,將圖片的本地引用替換為CDN的鏈接
在生產(chǎn)環(huán)境下,通過(guò)ExtractTextPlugin來(lái)提取CSS
資源混淆和壓縮Webpack提供的UgligyJS插件由于采用單線(xiàn)程壓縮,速度比較慢,可以使用Prarllel插件進(jìn)行優(yōu)化
Gzip壓縮在生產(chǎn)環(huán)境下,如果想進(jìn)一步減少bundle文件的大小,可以使用Gzip壓縮
按需加載在單頁(yè)應(yīng)用中,一個(gè)應(yīng)用可能會(huì)對(duì)應(yīng)很多路由,每個(gè)路由都會(huì)對(duì)應(yīng)一個(gè)組件;如果將這些組件全部放入一個(gè)bundle文件中,會(huì)導(dǎo)致最終的bundle文件比較大,因而,我們需要利用Webpack的Code Splitting功能,將代碼進(jìn)行分割,實(shí)現(xiàn)路由的按需加載。
參考文章:https://github.com/dwqs/blog/...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/83395.html
摘要:減少請(qǐng)求合并打包小圖標(biāo)等用代替作為單個(gè)節(jié)點(diǎn)使用,可以設(shè)置大小顏色等,非常便利。前后端分離項(xiàng)目,不論是還是,都有相應(yīng)的工具包。不過(guò),大部分前端對(duì)應(yīng)該陌生一些,為了實(shí)踐技術(shù),用熟悉的即可,真正的項(xiàng)目部署,有專(zhuān)業(yè)的實(shí)施人員來(lái)搞使用緩存 減少HTTP請(qǐng)求 CSS/JS 合并打包小圖標(biāo)等用iconfont代替:作為單個(gè)DOM節(jié)點(diǎn)使用,可以設(shè)置大小、顏色等,非常便利。個(gè)人建議前端來(lái)維護(hù)這個(gè)字體包,...
摘要:之前分享過(guò)幾篇關(guān)于技術(shù)棧的原創(chuàng)文章解析前端架構(gòu)學(xué)習(xí)復(fù)雜場(chǎng)景數(shù)據(jù)設(shè)計(jì)干貨總結(jié)打造單頁(yè)應(yīng)用一個(gè)項(xiàng)目理解最前沿技術(shù)棧真諦一個(gè)工程實(shí)例今天進(jìn)一步剖析一個(gè)實(shí)際案例移動(dòng)網(wǎng)頁(yè)版。目前面臨的問(wèn)題在于提高產(chǎn)品的各方面性能體驗(yàn)。 之前分享過(guò)幾篇關(guān)于React技術(shù)棧的原創(chuàng)文章: 解析Twitter前端架構(gòu) 學(xué)習(xí)復(fù)雜場(chǎng)景數(shù)據(jù)設(shè)計(jì) React Conf 2017 干貨總結(jié)1: React + ES next ...
摘要:在減少文件請(qǐng)求數(shù)量方面大致有以下三方面合并腳本文件合并樣式文件合并引用的圖片,使用雪碧圖。和的模塊管理不同,前者是基于靜態(tài)的,而后者是動(dòng)態(tài)的。被打包文件的內(nèi)容也已經(jīng)被壓縮混淆,減少了加載文件的。 作者:劉軼斌,騰訊應(yīng)用開(kāi)發(fā) 工程師商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系騰訊WeTest獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。 原文鏈接:http://wetest.qq.com/lab/view/345.html We...
摘要:而中實(shí)現(xiàn)原理是利用高階函數(shù)通過(guò)將多個(gè)函數(shù)組合成一個(gè)可執(zhí)行執(zhí)行函數(shù)關(guān)鍵步驟代碼如下所示。和都是基于更新差異元素。 引言 平時(shí)開(kāi)發(fā)單頁(yè)項(xiàng)目應(yīng)用基于vue,目前另外兩個(gè)比較熱的庫(kù)還有angular和react,angular 1系列用過(guò),進(jìn)入公司后由于基于vue技術(shù)棧就沒(méi)在關(guān)注了。一直在關(guān)注react,目的不是學(xué)習(xí)用法,只是為了拓展自己的視野和思維,通過(guò)了解一些使用上的差異性,來(lái)進(jìn)一步的思考...
閱讀 1747·2021-11-23 09:51
閱讀 3371·2021-09-26 10:21
閱讀 875·2021-09-09 09:32
閱讀 967·2019-08-29 16:06
閱讀 3392·2019-08-26 13:36
閱讀 837·2019-08-26 10:56
閱讀 2625·2019-08-26 10:44
閱讀 1205·2019-08-23 14:04