92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

什么是 Vite?

2023-2-9    前端達人

一、什么是 Vite 

Vite 是 vue 的作者尤雨溪在開發 vue3.0 的時候開發的一個 web 開發構建工具。由于其原生 ES 模塊導入方式,可以實現閃電般的冷服務器啟動。

二、Vite 和 Webpack 區別

Vite 優勢:

  1. vite 開發服務器啟動速度比 webpack 快
    webpack 會先打包,然后啟動開發服務器,請求服務器時直接給予打包結果。
    vite 在啟動開發服務器時不需要打包,也就意味著不需要分析模塊的依賴、不需要編譯,因此啟動速度非常快。當瀏覽器請求某個模塊時,再根據需要對模塊內容進行編譯。這種按需動態編譯的方式,極大的縮減了編譯時間,項目越復雜、模塊越多,vite的優勢越明顯。
  2. 由于現代瀏覽器本身就支持ES Module,會自動向依賴的Module發出請求。vite充分利用這一點,將開發環境下的模塊文件,就作為瀏覽器要執行的文件,而不是像webpack那樣進行打包合并。
  3. vite 熱更新比 webpack 快
    在 HMR 方面,當改動了一個模塊后,vite僅需讓瀏覽器重新請求該模塊即可,不像webpack那樣需要把該模塊的相關依賴模塊全部編譯一次,效率更高。
  4. vite 使用esbuild(Go 編寫) 預構建依賴,比 webpack 的 nodejs,快 10-100 倍。

Vite 劣勢:

  1. 生態不及webpack,加載器、插件不夠豐富
  2. 打包到生產環境時,vite使用傳統的 rollup(也可以自己手動安裝webpack來)進行打包
  3. 項目的開發瀏覽器要支持 ES Module,而且不能識別 CommonJS 語法

其他區別:

     1. 打包原理的區別

webpack
webpack打包原理
 
vite打包原理

     2. 項目入口文件的區別
         
項目根目錄的 index.html 是 Vite 項目的入口文件,而 webpack 的入口文件是 webpack 配置 entry 中指定的 js 文件。

三、Esbuild

Esbuild 是一款基于 Go 語言開發的 javascript 打包工具,最大的一個特征就是。

通過官網提供的一張圖,我們可以清晰的看到 Esbuild 的表現是多么優秀:

Esbuild 之所以能這么快,主要原因有兩個:

  • Go 語言開發,可以多線程打包,代碼直接編譯成機器碼;

    Webpack 一直被人詬病構建速度慢,主要原因是在打包構建過程中,存在大量的 resolveload、transformparse 操作(詳見 為什么有人說 vite 快,有人卻說 vite 慢?- 快速的冷啟動 ),而這些操作通常是通過 javascript 代碼來執行的。要知道,javascript 并不是什么高效的語言,在執行過程中要先編譯后執行,還是單線程并且不能利用多核 cpu 優勢,和 Go 語言相比,效率很低。

  • 可充分利用多核 cpu 優勢;

關鍵 API - transfrom & build

Esbuild 并不復雜,它對外提供了兩個 API:transform 和 build,使用起來非常簡單。

transfrom,轉換的意思,將 ts、jsxtsx 等格式的內容轉化為 js。 transfrom 只負責文件內容轉換,并不會生成一個新的文件。

build,構建的意思,根據指定的單個或者多個入口,分析依賴,并使用 loader 將不同格式的內容轉化為 js 內容,生成一個或多個 bundle 文件。

Esbuild 在 Vite 中的巧妙使用

我們來看看Vite 是怎么利用 Esbuild 來做預構建和內容轉換的。

預構建

為什么要做預構建?原因有兩點:

  • 將非 ESM 規范的代碼轉換為符合 ESM 規范的代碼;

  • 將第三方依賴內部的多個文件合并為一個,減少 http 請求數量;

middlewares 中內容轉換

Vite 中源文件的轉換是在 dev server 啟動以后通過 middlewares 實現的。

當瀏覽器發起請求以后,dev sever 會通過相應的 middlewares 對請求做處理,然后將處理以后的內容返回給瀏覽器。

middlewares 對源文件的處理,分為 resolve、loadtransform、parser 四個過程:

  1. resolve - 解析 url,找到源文件的絕對路徑;

  2. load - 加載源文件。如果是第三方依賴,直接將預構建內容返回給瀏覽器;如果是業務代碼,繼續 transform、parser

  3. transfrom - 對源文件內容做轉換,即 ts -> jsless -> css 等。轉換完成的內容可以直接返回給瀏覽器了。

  4. parser - 對轉換以后的內容做分析,找到依賴模塊,對依賴模塊做預轉換 - pre transform 操作,即重復 1 - 4。

    pre transform 是 Vite 做的一個優化點。預轉換的內容會先做緩存,等瀏覽器發起請求以后,如果已經完成轉換,直接將緩存的內容返回給瀏覽器。

Vite 在處理步驟 3 時,是通過 esbuild.transform 實現的,對比 Webpack 使用各個 loader 處理源文件,那是非常簡單、快捷的。

四、關于 Vite 的一些其他知識

  • 在工程中不是所有的引用模塊都是ES寫法,可能是CommonJS 和 UMD 、AMD 等等,這個時候Vite 會進行預構建,將其轉換為ESM模塊,以支持Vite。
  • 對于JSX、或者TS 等需要編譯的文件,Vite是用esbuild來進行編譯的。

五、Webpack 和 Rollup 區別

經驗法則:對于應用使用 webpack,對于類庫使用 Rollup。

如果你需要代碼拆分(Code Splitting),或者你有很多靜態資源需要處理,再或者你構建的項目需要引入很多CommonJS模塊的依賴,那么 webpack 是個很不錯的選擇。

如果您的代碼庫是基于 ES2015 模塊的,而且希望你寫的代碼能夠被其他人直接使用,你需要的打包工具可能是 Rollup 。

藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加藍小助,微信號:ben_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系01063334945。


分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。


藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司

日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
日韩av中文字幕一区| 伊人成人网在线看| www.性欧美| 日本不卡免费高清视频| 成人动漫一区二区| 精品久久久中文| 亚洲欧洲日韩av| 亚洲欧美日韩天堂一区二区| 成人免费在线观看视频| 中文字幕在线免费不卡| 日韩精品看片| 99久久精品一区二区| 国产精品久久久久久亚洲影视| 国产精品男人爽免费视频1| 美女啪啪无遮挡免费久久网站| 国产亚洲人成a一在线v站| 成人免费视频观看视频| 欧美一级视频一区二区| 色橹橹欧美在线观看视频高清| 国产精品久久久久久久小唯西川| 精品国产伦一区二区三区免费| 日本韩国一区二区三区视频| aaa在线免费观看| 7777精品伊人久久久大香线蕉| 日韩一二三区不卡在线视频| 一本一道综合狠狠老| 国产精品夫妻激情| 成人黄色免费看| 久久综合久久综合这里只有精品| 日韩视频免费观看高清完整版| 少妇淫片在线影院| 91精品国产自产在线观看永久| jvid福利写真一区二区三区| 理论片午午伦夜理片在线播放| 欧美日韩电影免费看| 男人天堂手机在线| 五月开心婷婷久久| 狠狠色狠狠色综合日日五| 北条麻妃在线一区二区| 国产ts人妖一区二区三区| 国产亚洲精aa在线看| 中文字幕不卡在线视频极品| 免费欧美在线视频| 日本高清不卡三区| 欧美综合欧美视频| 欧美久久久久久| 姬川优奈aav一区二区| yw.139尤物在线精品视频| 丝袜美腿一区二区三区| 欧美美女一区二区| 久久爱av电影| 国产欧美一区二区精品久导航| 欧洲生活片亚洲生活在线观看| 久久精品女人的天堂av| 偷拍精品精品一区二区三区| 狠狠躁夜夜躁人人爽超碰91| 亚洲网站啪啪| 久久久欧美精品sm网站| 亚洲免费在线视频一区 二区| 国产精品久久久久久久9999| 久久久久国产精品一区三寸| 欧美久久久久久一卡四| 榴莲视频成人app| 国产成人福利av| 秋霞午夜鲁丝一区二区老狼| 电影一区二区三| 久久久久久尹人网香蕉| 欧美午夜激情在线| 国产精品三p一区二区| 久久国产精品72免费观看| 日韩成人av在线播放| 国产精品1区在线| 中文字幕色婷婷在线视频| 4438全国成人免费| 国产精品女人久久久久久| 中文字幕av一区二区三区高| 国产亚洲高清一区| 成人黄色国产精品网站大全在线免费观看| 韩日在线一区| 成人妇女免费播放久久久| 成人免费的视频| 久久精品国产一区二区| 无码少妇一区二区三区| 91露出在线| 欧美视频在线观看| 日韩精品欧美一区二区三区| 欧美一区二区影院| 欧美国产日韩免费| 久久精品夜色噜噜亚洲a∨| 欧美激情一区二区三区| 久久先锋影音av鲁色资源| 亚洲精品aaaaa| 9色porny自拍视频一区二区| 美女露胸视频在线观看| 国内外成人免费激情在线视频网站| 尤物网址在线观看| 午夜在线精品| 免费在线观看黄色| 亚洲一区av在线播放| 久久久久久久亚洲精品| 91精品久久久久久久久青青| 午夜免费播放观看在线视频| 色成人免费网站| 日韩精品一二三四区| 久久久久久久综合狠狠综合| 久久露脸国产精品| 97国产精品videossex| 亚洲精品无播放器在线播放| 欧美一级高清大全免费观看| 香蕉久久精品| 欧美大片在线免费观看| 久久久一本精品99久久精品| 91精品国产综合久久香蕉麻豆| 欧美精品一区二区三区高清aⅴ| 欧美超碰在线| 激情综合五月婷婷| 污视频网站在线免费| 国产做受69高潮| av一区和二区| 狠狠色伊人亚洲综合网站色| 午夜精品一区二区三区四区| 精品中文字幕在线2019| 中文字幕亚洲无线码在线一区| 美女福利一区二区三区| 最新热久久免费视频| 欧美午夜a级限制福利片| 午夜国产精品视频免费体验区| 一区二区三区四区高清精品免费观看| 欧美年轻男男videosbes| 91精品国产综合久久精品app| 久久爱另类一区二区小说| 中文字幕欧美精品在线| 91理论片午午论夜理片久久| 国产精品丝袜高跟| 欧美成人性生活| 国产原创一区二区三区| 欧美亚洲国产另类| 激情成人午夜视频| sm性调教片在线观看| 一本一本久久a久久精品综合麻豆| 亚洲在线国产日韩欧美| 久久久久国产| 亚洲国产日韩欧美在线99| 超碰在线无需免费| 欧美亚洲激情在线| 午夜久久影院| 亚洲欧美日韩精品综合在线观看| 91久久久久久久| 色综合天天狠天天透天天伊人| 亚洲成人1区2区| 精品理论电影| 国产精品免费电影| 亚洲制服丝袜一区| 一本综合精品| 国产在线精品一区| 国产成人精品综合久久久| 不卡电影一区二区三区| 久热成人在线视频| 免费看的黄色欧美网站| 久久亚洲国产精品一区二区| 日韩电影在线观看中文字幕| 国产精品久久久久一区二区国产| 久草资源在线| 91se在线|