精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深入了解Vite:依賴預(yù)構(gòu)建原理

開發(fā) 前端
? commonJS 與 UMD兼容:因?yàn)閂ite在開發(fā)階段主要是依賴瀏覽器原生ES模塊化規(guī)范,所以無論是我們的源代碼還是第三方依賴都得符合ESM的規(guī)范,但是目前并不是所有第三方依賴都有ESM的版本,所以需要對(duì)第三方依賴進(jìn)行預(yù)編譯,將它們轉(zhuǎn)換成EMS規(guī)范的產(chǎn)物。

前言

前面我們有提到Vite在開發(fā)階段,提倡的是一個(gè)no-bundle的理念,不必與webpack那樣需要先將整個(gè)項(xiàng)目進(jìn)行打包構(gòu)建。但是no-bundle的理念只適合源代碼部分(我們自己寫的代碼),vite會(huì)將項(xiàng)目中的所有模塊分為依賴與源碼兩部分。

依賴:指的是一些不會(huì)變動(dòng)的一些模塊,如:node_modules中的第三方依賴,這部分代碼vite會(huì)在啟動(dòng)本地服務(wù)之前使用esbuild進(jìn)行預(yù)構(gòu)建。esbuild 使用 Go 編寫,比使用 JavaScript 編寫的打包器預(yù)構(gòu)建依賴快 10-100 倍。

源碼:指的是我們自己開發(fā)時(shí)寫的那部分代碼,這部分代碼可能會(huì)經(jīng)常變動(dòng),并且一般不會(huì)同時(shí)加載所有源代碼。

所以總結(jié)來說:no-bundle是針對(duì)源碼的,而預(yù)構(gòu)建是針對(duì)第三方依賴的

使用預(yù)構(gòu)建的原因

主要有以下兩點(diǎn):

  • commonJS 與 UMD兼容:因?yàn)閂ite在開發(fā)階段主要是依賴瀏覽器原生ES模塊化規(guī)范,所以無論是我們的源代碼還是第三方依賴都得符合ESM的規(guī)范,但是目前并不是所有第三方依賴都有ESM的版本,所以需要對(duì)第三方依賴進(jìn)行預(yù)編譯,將它們轉(zhuǎn)換成EMS規(guī)范的產(chǎn)物。

比如React,它就沒有ESM的版本,所以在使用Vite時(shí)需要預(yù)構(gòu)建

圖片圖片

  • 性能:為了提高后續(xù)頁面的加載性能,Vite將那些具有許多內(nèi)部模塊的 ESM 依賴項(xiàng)轉(zhuǎn)換為單個(gè)模塊。

比如常用的loads-es

我們引入lodash-es工具包中的debounce方法,此時(shí)它理想狀態(tài)應(yīng)該是只發(fā)出一個(gè)請(qǐng)求

import  { debounce }  from 'lodash-es'

事實(shí)也是這樣:

圖片圖片

但這是預(yù)構(gòu)建的功勞,如果我們對(duì)lodash-es關(guān)閉預(yù)構(gòu)建呢?

vite配置文件加上如下代碼,再來試試:

// vite.config.js
optimizeDeps: {
    exclude: ['lodash-es']
  }

圖片圖片

可以看到,此時(shí)發(fā)起了600多個(gè)請(qǐng)求,這是因?yàn)閘odash-es 有超過 600 個(gè)內(nèi)置模塊!

vite通過將 lodash-es 預(yù)構(gòu)建成單個(gè)模塊,只需要發(fā)起一個(gè)HTTP請(qǐng)求!可以很大程度地提高加載性能

由于Vite的預(yù)構(gòu)建是基于性能優(yōu)異的Esbuild來完成的,所以并不會(huì)造成明顯的打包性能問題

開啟預(yù)構(gòu)建

默認(rèn)配置

一般來說,Vite幫我們默認(rèn)開啟了預(yù)構(gòu)建

圖片圖片

預(yù)構(gòu)建產(chǎn)物會(huì)存放在:node_modules/.vite/deps

圖片圖片

里面會(huì)有一個(gè)_metadata.json的文件,這里保存著已經(jīng)預(yù)構(gòu)建過的依賴信息

對(duì)于預(yù)構(gòu)建產(chǎn)物的請(qǐng)求,Vite會(huì)設(shè)置為強(qiáng)緩存,有效時(shí)間為1年,對(duì)于有效期內(nèi)的請(qǐng)求,會(huì)直接使用緩存內(nèi)容

圖片圖片

如果只有HTTP強(qiáng)緩存肯定也不行,如果用戶更新了依賴版本,在緩存過期之前,瀏覽器拿到的一直是舊版本的內(nèi)容。

所以Vite對(duì)本地文件也設(shè)置了緩存判斷,如果下面幾個(gè)地方任意一個(gè)地方有變動(dòng),Vite將會(huì)對(duì)依賴進(jìn)行重新預(yù)構(gòu)建:

  • 項(xiàng)目依賴dependencies變更

圖片圖片

  • 各種包管理器的lock文件變更

圖片圖片

  • optimizeDeps配置內(nèi)容變更

圖片圖片

自定義配置

entries

默認(rèn)情況下,Vite會(huì)抓取項(xiàng)目中的index.html來檢測(cè)需要預(yù)構(gòu)建的依賴

optimizeDeps: {
  entries: ['index.html']
}

如果指定了 build.rollupOptions.input,Vite 將轉(zhuǎn)而去抓取這些入口點(diǎn)。

exclude

排除需要預(yù)構(gòu)建的依賴項(xiàng)

optimizeDeps: {
  exclude: ['lodash-es']
}

include

默認(rèn)情況下,不在 node_modules 中的依賴不會(huì)被預(yù)構(gòu)建。使用此選項(xiàng)可強(qiáng)制選擇預(yù)構(gòu)建的依賴項(xiàng)。

optimizeDeps: {
  include: ['lodash-es']
}

預(yù)構(gòu)建流程

還是從源碼入手,在啟動(dòng)服務(wù)的過程中會(huì)執(zhí)行一個(gè)initDepsOptimizer表示初始化依賴優(yōu)化

圖片圖片

接著找到定義initDepsOptimizer方法的地方

圖片圖片

在這里會(huì)執(zhí)行createDepsOptimizer方法,再接著找到定義createDepsOptimizer的地方

圖片圖片

這里首先會(huì)去執(zhí)行l(wèi)oadCachedDepOptimizationMetadata用于獲取本地緩存中的metadata數(shù)據(jù)

圖片圖片

該函數(shù)會(huì)在獲取到_metadata.json文件內(nèi)容之后去對(duì)比lock文件hash以及配置文件optimizeDeps內(nèi)容,如果一樣說明預(yù)構(gòu)建緩存沒有任何改變,無需重新預(yù)構(gòu)建,直接使用上次預(yù)構(gòu)建緩存即可。

如果沒有緩存時(shí)則需要進(jìn)行依賴掃描:

圖片圖片

這里主要是會(huì)調(diào)用scanImport方法,從名字也能看出該方法應(yīng)該是通過掃描項(xiàng)目中的import語句來得到需要預(yù)編譯的依賴

圖片圖片

最終會(huì)返回一個(gè)prepareEsbuildScanner方法:

圖片圖片

最后該方法中會(huì)使用esbuild對(duì)掃描出來的依賴項(xiàng)進(jìn)行預(yù)編譯。

責(zé)任編輯:武曉燕 來源: 前端南玖
相關(guān)推薦

2021-04-28 10:13:58

zookeeperZNode核心原理

2021-01-19 12:00:39

前端監(jiān)控代碼

2024-04-12 07:51:05

SpringBean初始化

2021-01-12 09:03:17

MySQL復(fù)制半同步

2010-06-23 20:31:54

2009-08-25 16:27:10

Mscomm控件

2020-09-21 09:53:04

FlexCSS開發(fā)

2010-11-19 16:22:14

Oracle事務(wù)

2010-07-13 09:36:25

2022-08-26 13:48:40

EPUBLinux

2020-07-20 06:35:55

BashLinux

2020-11-06 16:50:43

工具GitLab CICD

2011-07-18 15:08:34

2022-06-03 10:09:32

威脅檢測(cè)軟件

2010-11-15 11:40:44

Oracle表空間

2010-11-08 13:54:49

Sqlserver運(yùn)行

2013-04-16 10:20:21

云存儲(chǔ)服務(wù)云存儲(chǔ)SLA服務(wù)水平協(xié)議

2010-09-27 09:31:42

JVM內(nèi)存結(jié)構(gòu)

2018-06-22 13:05:02

前端JavaScript引擎

2023-10-08 00:02:07

Java排序算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

黄色在线免费观看大全| 久热这里只有精品6| 只有精品亚洲| 一区二区视频在线| 久久久影院一区二区三区| 在线免费一区二区| 欧美午夜不卡| 亚洲天堂影视av| 美女流白浆视频| 三上悠亚亚洲一区| 一区二区三区在线观看网站| 蜜桃传媒视频麻豆一区| 国产视频手机在线| 久久国产日本精品| 九九视频这里只有精品 | 国产一区二区伦理| 性欧美长视频免费观看不卡| 中国美女乱淫免费看视频| 亚洲日本中文| 在线日韩国产精品| 久草视频国产在线| 免费日本一区二区三区视频| 久久综合九色综合97婷婷女人| 成人情趣片在线观看免费| 天天操天天摸天天干| 永久91嫩草亚洲精品人人| 亚洲精品自在久久| 亚洲少妇一区二区三区| 少妇精品视频在线观看| 色av成人天堂桃色av| 免费在线黄网站| 日本视频在线观看| 久久精品欧美日韩| 国内精品视频在线播放| 国产aⅴ一区二区三区| 麻豆91精品91久久久的内涵| 欧美在线免费看| 日韩黄色三级视频| 欧美91视频| 久久久精品999| 久久久久人妻一区精品色| 精品日韩免费| 亚洲视频axxx| 成年人在线观看av| 日本成人中文| 亚洲精品国产精品国自产在线| 日本wwwxx| 欧美成年网站| 日韩欧美在线影院| 色哟哟在线观看视频| 色成人综合网| 欧美精品免费视频| 日本人视频jizz页码69| yw.尤物在线精品视频| 欧美午夜久久久| 亚洲午夜精品久久久久久人妖| 丁香花在线电影| 亚洲综合在线视频| www.日本在线视频| 精灵使的剑舞无删减版在线观看| 一级做a爱片久久| 欧美在线观看视频免费| 日本中文字幕中出在线| 亚洲香肠在线观看| 欧美日韩不卡在线视频| 少妇在线看www| 欧美日韩中文在线| 免费在线观看毛片网站| 色天使综合视频| 欧美日韩在线亚洲一区蜜芽| 拔插拔插华人永久免费| 高清不卡一区| 精品成人免费观看| bl动漫在线观看| 色婷婷av一区二区三区丝袜美腿| 国产丝袜一区二区三区| 91激情视频在线观看| 日韩在线观看电影完整版高清免费悬疑悬疑| 国产一区二区三区在线| 中文乱码字幕高清一区二区| 综合五月婷婷| 97精品国产97久久久久久免费| 欧美另类一区二区| 人禽交欧美网站| 成人亚洲综合色就1024| www精品国产| 久久综合久久久久88| 翔田千里亚洲一二三区| 日本视频在线播放| 亚洲国产精品一区二区久久恐怖片| 男女猛烈激情xx00免费视频| 亚洲成人激情社区| 91精品国产91综合久久蜜臀| 亚洲精品国产成人av在线| 国产最新精品| 欧美成aaa人片免费看| 日本高清www免费视频| 蜜臀精品一区二区三区在线观看 | 国产精品人妖ts系列视频| 国产一二三四五| 成人影院入口| 精品卡一卡二卡三卡四在线| 88久久精品无码一区二区毛片| 午夜精品视频一区二区三区在线看| 久久免费视频在线| 人妻中文字幕一区二区三区| 成人综合在线观看| 午夜老司机精品| 24小时免费看片在线观看| 欧美日韩一二区| 男人网站在线观看| 久久久久久久久久久久久久久久久久| 国内精品久久久久| 一级特黄aaa大片| aaa国产一区| 可以免费看的黄色网址| 天堂久久午夜av| 亚洲精品在线免费观看视频| 精品视频第一页| 国产亚洲网站| 成人一区二区三区四区| 午夜免费福利在线观看| 色综合天天综合网天天狠天天| 黄色a级三级三级三级| 精品视频网站| 日本精品一区二区三区在线播放视频 | 五月婷婷综合在线观看| 激情欧美日韩一区| 成人在线播放av| 粉嫩av一区| 欧美日韩国产一区中文午夜| 动漫av在线免费观看| 日韩在线观看一区| 国产精品久久久久久亚洲影视| 神马久久久久久久久久| 亚洲午夜免费电影| 亚欧美一区二区三区| 99视频精品全国免费| 日韩av手机在线观看| 三级在线观看网站| 亚洲综合色视频| 色姑娘综合天天| 久久久久久久久久久妇女| 国产精品老女人精品视频| 青草久久伊人| 一本大道久久精品懂色aⅴ| 亚洲制服丝袜在线播放| 日韩图片一区| 国产日韩久久| av影院在线免费观看| 日韩免费观看高清完整版 | 亚洲精品99| 成人久久久久久久| 国产黄色在线观看| 91精品国产色综合久久| 99久久99久久精品国产| 狠狠色丁香婷婷综合久久片| 中国人体摄影一区二区三区| 四虎影视国产精品| 久久久久99精品久久久久| 99精品在线看| 亚洲资源在线观看| 五十路六十路七十路熟婆| 国产偷自视频区视频一区二区| 久久精品美女| 高清亚洲高清| 操日韩av在线电影| 亚洲成a人片在线| 亚洲成人一区二区在线观看| 三级电影在线看| 天堂成人国产精品一区| 亚洲一区二区三区色| 国产精品一区免费在线| 欧美疯狂做受xxxx高潮| 天天干天天爱天天操| 91国产丝袜在线播放| 最新黄色av网址| 国产黄色成人av| www.99热这里只有精品| 精品国产一区探花在线观看| 国产一区视频在线播放| 色婷婷av在线| 亚洲视频在线观看| 夜夜躁很很躁日日躁麻豆| 亚洲综合久久av| 波多野结衣av在线免费观看| 丝袜美腿亚洲一区二区图片| 黄色免费高清视频| 国产色噜噜噜91在线精品| 国产精品igao视频| 中文av资源在线| 亚洲午夜未删减在线观看| 国产美女免费看| 日本高清免费不卡视频| 青青草手机在线视频| 久久久综合九色合综国产精品| √天堂资源在线| 国产精品主播| 91精品一区二区三区四区| 日韩mv欧美mv国产网站| 91免费在线视频网站| 亚洲啊v在线| 美乳少妇欧美精品| 国产色在线 com| 精品sm在线观看| 中文字幕在线播出| 天天色天天操综合| 日本在线一级片| 久久久综合激的五月天| 久久久无码人妻精品无码| 蜜桃av噜噜一区| 日本少妇高潮喷水视频| 欧美1区3d| 亚洲ai欧洲av| 偷窥自拍亚洲色图精选| 99热99热| 亚洲免费资源| 国产精品v日韩精品| av资源网在线播放| 欧美区二区三区| 蜜芽在线免费观看| 在线观看国产精品淫| 手机在线精品视频| 日韩精品一区二区三区四区| 国产精品久久久久久久久久久久久久久久 | 中文字幕在线看视频国产欧美在线看完整 | 最近日韩免费视频| 福利一区视频在线观看| 久久婷婷国产麻豆91| 亚洲精品乱码久久久久| 中文字幕第69页| 中文字幕免费不卡| 亚洲精品乱码久久久久久久久久久久| 成人av在线一区二区| 欧美熟妇另类久久久久久多毛| 美洲天堂一区二卡三卡四卡视频| 日韩 欧美 高清| 亚洲欧美网站| 欧洲av无码放荡人妇网站| 夜夜精品视频| 男人和女人啪啪网站| 99精品国产一区二区青青牛奶| www.xxx麻豆| 国产一区二区三区四区三区四| 国产情侣第一页| 国产精品mv在线观看| 久久综合亚洲精品| 欧美激情五月| 婷婷无套内射影院| 亚洲免费精品| 无码无遮挡又大又爽又黄的视频| 欧美亚洲视频| 美女网站免费观看视频| 快she精品国产999| 超碰在线公开97| 狠狠色丁香婷婷综合久久片| 国产精品中文久久久久久| 国产suv一区二区三区88区| wwwxxx色| 久久影院视频免费| 日本一卡二卡在线播放| 国产精品网站在线播放| 国产黄a三级三级| 亚洲精品视频在线观看网站| 国产在线观看免费av| 天天综合网 天天综合色| 6080午夜伦理| 91.麻豆视频| 丰满肉嫩西川结衣av| 亚洲精品动漫久久久久| 国产在线观看免费| 久久久999国产精品| 国产www视频在线观看| 91超碰caoporn97人人| 日韩经典一区| 99在线热播| 日韩动漫一区| 亚洲精品乱码久久久久久蜜桃91| 91精品蜜臀一区二区三区在线| 99er在线视频| 欧美专区一区二区三区| 亚洲另类第一页| 国产成人自拍网| 亚洲码无人客一区二区三区| 亚洲视频在线观看三级| 天堂网一区二区三区| 欧美日韩精品久久久| 囯产精品久久久久久| 亚洲图片欧洲图片av| 超碰在线无需免费| 55夜色66夜色国产精品视频| 综合久草视频| 久久精品aaaaaa毛片| 久久久久久久久99精品大| 国产成人无码精品久久久性色| 九九**精品视频免费播放| 特级西西人体4444xxxx| 中文字幕一区二区三区不卡| 天堂在线免费观看视频| 欧美一级专区免费大片| 高清av在线| 97视频国产在线| 高清不卡一区| 日韩精品欧美一区二区三区| 韩国av一区| aaa一级黄色片| 久久亚洲二区三区| 久久精品免费av| 欧美久久高跟鞋激| 国产精品视频一区二区久久| 欧美精品福利视频| 亚洲一区有码| 视频二区一区| 美女精品一区| 国产一卡二卡三卡四卡| 一区二区中文字幕在线| 在线免费观看国产精品| 亚洲第一区中文99精品| www久久日com| 成人精品视频久久久久| 欧美日韩在线网站| 白嫩少妇丰满一区二区| 99re成人在线| 成年人免费看毛片| 精品国产制服丝袜高跟| 国产日产一区二区三区| 国产日韩欧美91| 日韩一区三区| 天天综合网久久| 欧美国产一区视频在线观看| 国产精品久久久久久人| 精品国产乱码久久久久久久 | 一区二区三区加勒比av| 国产精品老熟女视频一区二区| 中文字幕视频在线免费欧美日韩综合在线看| 中文字幕在线看片| 美女精品国产| 国产精品综合| 99re久久精品国产| 狠狠久久五月精品中文字幕| 天堂网2014av| 55夜色66夜色国产精品视频| 网曝91综合精品门事件在线| 欧美精品久久久久久久免费| 97se亚洲国产综合自在线观| 久久精品美女视频| 亚洲精品www久久久久久广东| 成人免费网站观看| 麻豆av一区二区三区| 亚洲影院一区| 欧美另类z0zx974| 欧美视频一区二区三区在线观看| 99视频在线观看地址| 国产精品视频自拍| 小说区亚洲自拍另类图片专区| 亚洲小视频网站| 亚洲免费观看高清完整版在线观看 | 国产二区国产一区在线观看| 久一视频在线观看| 亚洲精品xxx| 91精品美女| 欧美少妇一区二区三区| 国产精品1024久久| 日韩免费视频网站| 精品亚洲一区二区三区四区五区| 欧美国产日韩电影| 国产av第一区| 成人av一区二区三区| 日本一区二区三区精品| 在线观看不卡av| 香蕉大人久久国产成人av| 91免费黄视频| 国产欧美日本一区二区三区| 91久久久久国产一区二区| 久久久久成人精品| 亚洲最好看的视频| 尤物国产在线观看| 亚洲成人手机在线| 黄色国产在线| 亚洲xxxxx电影| 美女视频一区免费观看| 欧美肥妇bbwbbw| 亚洲福利精品在线| 国产69精品久久| 成人免费视频91| 国产精品嫩草久久久久| 特黄视频在线观看| 国产精品视频大全| 伊人久久综合| 国产探花视频在线| 亚洲大胆人体av| 欧美在线一级| av动漫免费看| 亚洲男人的天堂在线aⅴ视频| 四虎精品成人影院观看地址| 91精品久久久久久综合乱菊 | 日日干夜夜操s8| 午夜av一区二区三区| a视频在线免费看| 日本一区二区三区www|