AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

為什么Webpack打包慢?為什么Vite會(huì)比Webpack快?如何提高Webpack速度?

來(lái)源: 責(zé)編: 時(shí)間:2024-05-27 08:58:23 176觀看
導(dǎo)讀Webpack打包慢的原因:多關(guān)聯(lián)依賴關(guān)系:當(dāng)項(xiàng)目使用npm安裝包時(shí),由于不同設(shè)備可能拉取到的package版本不一,這可能導(dǎo)致打包過(guò)程中的不一致性和復(fù)雜性增加,從而影響打包速度。未使用的依賴:項(xiàng)目中可能存在一些沒(méi)有被使用但又被

Webpack打包慢的原因:

  1. 多關(guān)聯(lián)依賴關(guān)系:當(dāng)項(xiàng)目使用npm安裝包時(shí),由于不同設(shè)備可能拉取到的package版本不一,這可能導(dǎo)致打包過(guò)程中的不一致性和復(fù)雜性增加,從而影響打包速度。
  2. 未使用的依賴:項(xiàng)目中可能存在一些沒(méi)有被使用但又被引入的庫(kù),webpack會(huì)針對(duì)這些未使用的庫(kù)進(jìn)行打包,造成性能的浪費(fèi)。
  3. 打包文件數(shù)量:如果項(xiàng)目中有大量的文件需要打包,webpack需要處理更多的資源和依賴關(guān)系,這會(huì)導(dǎo)致打包速度變慢。
  4. Loader的使用:某些Loader可能不夠高效,或者加載了不必要的資源,這也會(huì)增加打包時(shí)間。

Vite比Webpack快的原因:

  1. 快速的冷啟動(dòng):Vite利用了ES模塊的特性,基于瀏覽器原生支持的HTTP/2協(xié)議,從而實(shí)現(xiàn)了快速的冷啟動(dòng)時(shí)間,避免了Webpack繁重的打包過(guò)程。
  2. 更快的熱重載:Vite在開(kāi)發(fā)過(guò)程中只重新編譯被修改的文件,而不是整個(gè)項(xiàng)目,這大大加快了熱重載的速度。
  3. 按需編譯:Vite通過(guò)靜態(tài)分析技術(shù),只編譯當(dāng)前所需的代碼片段,而不是整個(gè)應(yīng)用,這減少了不必要的編譯時(shí)間。
  4. 更輕量級(jí):Vite的構(gòu)建過(guò)程更加輕量級(jí),它只負(fù)責(zé)將源代碼轉(zhuǎn)換為瀏覽器可執(zhí)行代碼,而將其他功能如壓縮、合并等工作交給生產(chǎn)環(huán)境打包工具處理。

優(yōu)化Webpack

一、優(yōu)化Webpack配置

  1. 設(shè)置mode為production:

在Webpack配置中,將mode設(shè)置為production。這會(huì)啟用Webpack內(nèi)置的優(yōu)化選項(xiàng),如代碼壓縮和作用域提升。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. 使用優(yōu)化插件:

使用如TerserPlugin(替代UglifyJsPlugin)進(jìn)行代碼壓縮,它可以提供更好的壓縮率和速度。Y6w28資訊網(wǎng)——每日最新資訊28at.com

使用SplitChunksPlugin進(jìn)行代碼拆分,將公共庫(kù)和代碼分離出來(lái),減少主包的體積。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Y6w28資訊網(wǎng)——每日最新資訊28at.com

    配置resolve:Y6w28資訊網(wǎng)——每日最新資訊28at.com

    Y6w28資訊網(wǎng)——每日最新資訊28at.com

在resolve選項(xiàng)中,配置alias以減少模塊解析時(shí)間。Y6w28資訊網(wǎng)——每日最新資訊28at.com

使用extensions來(lái)指定需要解析的文件后綴,避免不必要的文件搜索。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Y6w28資訊網(wǎng)——每日最新資訊28at.com

    配置entry和output:Y6w28資訊網(wǎng)——每日最新資訊28at.com

    Y6w28資訊網(wǎng)——每日最新資訊28at.com

合理地設(shè)置entry,避免不必要的打包入口。Y6w28資訊網(wǎng)——每日最新資訊28at.com

在output中設(shè)置filename和chunkFilename,使用[contenthash]代替[hash],以便更精確地緩存文件。Y6w28資訊網(wǎng)——每日最新資訊28at.com

二、減少打包文件數(shù)量

  1. 按需加載:

使用Webpack的動(dòng)態(tài)導(dǎo)入功能(如import()),實(shí)現(xiàn)代碼分割和按需加載。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Tree Shaking:

確保在package.json中設(shè)置了"sideEffects": false(如果項(xiàng)目沒(méi)有副作用),以便Webpack能夠刪除未使用的代碼。Y6w28資訊網(wǎng)——每日最新資訊28at.com

三、使用緩存

  1. 啟用Webpack的持久化緩存:
  • 在Webpack配置中啟用cache選項(xiàng),并配置合適的緩存策略。
  1. 使用外部緩存工具:
  • 如hard-source-webpack-plugin,它可以為Webpack提供跨構(gòu)建的持久化緩存。Y6w28資訊網(wǎng)——每日最新資訊28at.com

四、多線程/多進(jìn)程構(gòu)建

  1. 使用thread-loader:

對(duì)于耗時(shí)的loader(如babel-loader),可以使用thread-loader進(jìn)行多線程處理。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. 使用happypack:

happypack可以將loader的任務(wù)分配到多個(gè)子進(jìn)程中并行執(zhí)行。Y6w28資訊網(wǎng)——每日最新資訊28at.com

五、其他優(yōu)化

  1. 減少Webpack的搜索范圍:

在resolve配置中使用include和exclude選項(xiàng)來(lái)縮小Webpack的搜索范圍。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. 使用DLL Plugin:

將不常變動(dòng)的庫(kù)和框架(如React、React-DOM等)單獨(dú)打包成一個(gè)文件,然后在構(gòu)建時(shí)動(dòng)態(tài)鏈接這個(gè)文件。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Y6w28資訊網(wǎng)——每日最新資訊28at.com

    使用更高效的Loader:Y6w28資訊網(wǎng)——每日最新資訊28at.com

    Y6w28資訊網(wǎng)——每日最新資訊28at.com

選擇更輕量級(jí)和高效的Loader,避免使用不必要的Loader。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Y6w28資訊網(wǎng)——每日最新資訊28at.com

    分析打包結(jié)果:Y6w28資訊網(wǎng)——每日最新資訊28at.com

    Y6w28資訊網(wǎng)——每日最新資訊28at.com

使用工具(如webpack-bundle-analyzer)分析打包后的包大小,找出可以優(yōu)化的點(diǎn)。Y6w28資訊網(wǎng)——每日最新資訊28at.com

Vite介紹

Vite是一個(gè)面向現(xiàn)代瀏覽器的前端構(gòu)建工具,其核心特點(diǎn)是輕量、快速和高效。以下是關(guān)于Vite的詳細(xì)介紹:Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. 定義與原理

Vite是一個(gè)基于ES模塊的前端構(gòu)建工具,它利用了現(xiàn)代瀏覽器對(duì)ES模塊的原生支持,通過(guò)原生ESM模塊來(lái)提供極速的開(kāi)發(fā)服務(wù)器和熱更新(HMR)。Y6w28資訊網(wǎng)——每日最新資訊28at.com

在開(kāi)發(fā)過(guò)程中,Vite只會(huì)在瀏覽器請(qǐng)求某個(gè)模塊時(shí)才對(duì)其進(jìn)行編譯,實(shí)現(xiàn)了真正的按需編譯,從而避免了Webpack等傳統(tǒng)打包工具在開(kāi)發(fā)階段就需要將整個(gè)項(xiàng)目打包的弊端。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. 主要特點(diǎn)

快速的冷啟動(dòng):由于采用了基于瀏覽器原生ES模塊的開(kāi)發(fā)模式,Vite可以在開(kāi)發(fā)時(shí)快速啟動(dòng)應(yīng)用,減少了冷啟動(dòng)時(shí)間。據(jù)報(bào)告,Vite的首次打開(kāi)頁(yè)面需要的時(shí)間比Webpack和Rollup少80%~95%。Y6w28資訊網(wǎng)——每日最新資訊28at.com

按需編譯:Vite可以根據(jù)需要?jiǎng)討B(tài)地編譯模塊,而不是像傳統(tǒng)的打包工具一樣將所有模塊都打包到一個(gè)文件中。這大大減少了不必要的編譯工作,提高了開(kāi)發(fā)效率。Y6w28資訊網(wǎng)——每日最新資訊28at.com

熱更新:Vite支持熱更新(HMR),可以在開(kāi)發(fā)時(shí)實(shí)時(shí)更新修改后的代碼,無(wú)需手動(dòng)刷新頁(yè)面,提高了開(kāi)發(fā)效率。Y6w28資訊網(wǎng)——每日最新資訊28at.com

插件化:Vite支持插件化,可以通過(guò)插件擴(kuò)展Vite的功能,使其更加靈活和強(qiáng)大。Y6w28資訊網(wǎng)——每日最新資訊28at.com

支持多種前端框架:Vite支持多種前端框架,包括Vue、React、Angular等,可以滿足不同項(xiàng)目的需求。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Y6w28資訊網(wǎng)——每日最新資訊28at.com

    與傳統(tǒng)打包工具的比較Y6w28資訊網(wǎng)——每日最新資訊28at.com

    Y6w28資訊網(wǎng)——每日最新資訊28at.com

與Webpack等傳統(tǒng)打包工具相比,Vite在構(gòu)建方式、編譯方式、熱更新方式、插件化方式和支持的框架等方面都有所不同。Vite更加輕量、快速、靈活,適合于開(kāi)發(fā)小型應(yīng)用和組件庫(kù),而Webpack則更加適合于大型應(yīng)用的構(gòu)建和優(yōu)化。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Y6w28資訊網(wǎng)——每日最新資訊28at.com

    優(yōu)勢(shì)Y6w28資訊網(wǎng)——每日最新資訊28at.com

    Y6w28資訊網(wǎng)——每日最新資訊28at.com

構(gòu)建速度快:由于采用了類(lèi)似瀏覽器工作方式的模塊機(jī)制,Vite大大加速了構(gòu)建速度。Y6w28資訊網(wǎng)——每日最新資訊28at.com

構(gòu)建結(jié)果小:Vite只會(huì)編譯你改動(dòng)的模塊,最終打包結(jié)果比Webpack和Rollup小幾十倍。Y6w28資訊網(wǎng)——每日最新資訊28at.com

開(kāi)發(fā)調(diào)試快:多虧了快速構(gòu)建速度,Vite支持實(shí)時(shí)增量重新編譯。你只需保存修改文件,瀏覽器就會(huì)實(shí)時(shí)刷新。Y6w28資訊網(wǎng)——每日最新資訊28at.com

配置少:Vite的配置非常簡(jiǎn)單易用,通常只需要一個(gè)配置文件即可完成項(xiàng)目的構(gòu)建和部署。Y6w28資訊網(wǎng)——每日最新資訊28at.com

  1. Y6w28資訊網(wǎng)——每日最新資訊28at.com

    安裝與配置Y6w28資訊網(wǎng)——每日最新資訊28at.com

    Y6w28資訊網(wǎng)——每日最新資訊28at.com

Vite可以通過(guò)npm或yarn進(jìn)行安裝。安裝完成后,只需要在項(xiàng)目根目錄下創(chuàng)建一個(gè)配置文件(如vite.config.js),然后按照官方文檔進(jìn)行配置即可。Y6w28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-90861-0.html為什么Webpack打包慢?為什么Vite會(huì)比Webpack快?如何提高Webpack速度?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Go語(yǔ)言:利用Govaluate構(gòu)建規(guī)則配置引擎

下一篇: 純血鴻蒙即將到來(lái),Testin云測(cè)解讀鴻蒙原生應(yīng)用測(cè)試

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 一加Ace2 Pro官宣:普及16G內(nèi)存 引領(lǐng)24G

    一加官方今天繼續(xù)為本月發(fā)布的新機(jī)一加Ace2 Pro帶來(lái)預(yù)熱,公布了內(nèi)存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引領(lǐng),還有呢?#一加Ace2Pro#,2023 年 8 月,敬請(qǐng)期待。”同時(shí)
  • 石頭自清潔掃拖機(jī)器人G10S評(píng)測(cè):多年黑科技集大成之作 懶人終極福音

    科技圈經(jīng)常能看到一個(gè)詞叫“縫合怪”,用來(lái)形容那些把好多功能或者外觀結(jié)合在一起的產(chǎn)品,通常這樣的詞是貶義詞,但如果真的是產(chǎn)品縫合的好、縫合的實(shí)用的話,那它就成了中性詞,今
  • 三言兩語(yǔ)說(shuō)透設(shè)計(jì)模式的藝術(shù)-簡(jiǎn)單工廠模式

    一、寫(xiě)在前面工廠模式是最常見(jiàn)的一種創(chuàng)建型設(shè)計(jì)模式,通常說(shuō)的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡(jiǎn)單工廠模式又稱為靜態(tài)工廠方法模式,不屬于GoF 23種設(shè)計(jì)
  • 分布式系統(tǒng)中的CAP理論,面試必問(wèn),你理解了嘛?

    對(duì)于剛剛接觸分布式系統(tǒng)的小伙伴們來(lái)說(shuō),一提起分布式系統(tǒng),就感覺(jué)高大上,深不可測(cè)。而且看了很多書(shū)和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統(tǒng)
  • 為什么你不應(yīng)該使用Div作為可點(diǎn)擊元素

    按鈕是為任何網(wǎng)絡(luò)應(yīng)用程序提供交互性的最常見(jiàn)方式。但我們經(jīng)常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過(guò)這樣做,我們錯(cuò)過(guò)了許多內(nèi)置瀏覽器的功能。
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時(shí)候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯(cuò),每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 年輕人的“職場(chǎng)羞恥感”,無(wú)處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來(lái)源:燃次元“人在職場(chǎng),應(yīng)該選擇什么樣的著裝?”近日,在網(wǎng)絡(luò)上,一個(gè)與著裝相關(guān)的帖子引發(fā)關(guān)注,在該帖子里,一位在高級(jí)寫(xiě)字樓亞洲金
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開(kāi)發(fā)者大會(huì)2023(HDC.Together)大會(huì)上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來(lái),HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • 到手價(jià)3099元起!iQOO Neo8 Pro今日首銷(xiāo):安卓性能最強(qiáng)旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會(huì),全新的iQOO Neo8系列也正式與大家見(jiàn)面,包含iQOO Neo8和iQOO Neo8 Pro兩個(gè)版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更
Top