一. Vite是什么重荠?
vite的開發(fā)者是尤雨溪拄丰,同時他也是vue的開發(fā)者蝇棉。Vite是什么呢,有這幾種說法:
- Vite官網(wǎng) :Vite是一種新型前端構(gòu)建工具澜倦,能夠顯著提升前端開發(fā)體驗聚蝶。
- 網(wǎng)絡(luò)上? :Vite是一個靜態(tài)服務(wù)器,也可以說是一個開發(fā)的構(gòu)建工具藻治。
- 我覺得Vite是一個前端構(gòu)建工具碘勉,它可以代替webpack在項目中的作用,變得更加輕量化桩卵,它最大的一個特點就是快Q槊摇!它直面了一個問題雏节,開發(fā)階段就需要打包嗎胜嗓? 這個問題的答案也就是他和webpack的最大區(qū)別, Vite在開發(fā)階段不會打包項目钩乍,順其自然的這也成為了Vite為什么這么快最重要的的原因之一
二. Vite的特點兼蕊?
- 輕量,開箱即用
- 啟動項目速度極快
- 通過內(nèi)置Rollup打包項目
1.輕量件蚕,開箱即用
輸入如下命令孙技,再輸入項目名稱,選擇前端框架排作,然后打開新建的文件牵啦,安裝依賴,用yarn dev既可以啟動妄痪,使用起來非彻快。
yarn create @vitejs/app
2.啟動項目速度極快
Vite啟動項目快的原因有如下幾點
-
Vite不打包整個項目
Vite在輸入啟動命令后基本上是會直接啟動服務(wù)衫生,不打包整個項目裳瘪。貼一張Vite官網(wǎng)的圖,這樣一對比就可以看到Vite為什么快了
Vite緩存依賴文件
Vite將項目代碼分成了兩部分罪针,一部分是項目的依賴(package.js),一部分是項目的源代碼(src/page),這兩部分有不同的處理方式彭羹。依賴文件不會經(jīng)常變,Vite將項目的依賴打包并保持在node_module/.vite中泪酱,依賴的打包工具是ESBuild這個工具派殷,ESBuild是使用go語言寫的,打包速度比javascript快很多墓阀。Vite只有在第一次啟動毡惜、依賴變動、配置變動這三種情況下才會執(zhí)行打包這個動作斯撮。在打包完成后经伙,會通過HTTP緩存在瀏覽器中。-
模塊熱更新
項目的源代碼(src/page)是直接運行在瀏覽器中勿锅,利用瀏覽器原生內(nèi)置的ESmodule(ES6模塊化加載規(guī)則)帕膜,在源代碼發(fā)生變化時,模塊熱更新只會更新當(dāng)前頁面所涉及的代碼
image
3.通過內(nèi)置Rollup打包項目
Vite內(nèi)置了Roullup粱甫,用于打包項目泳叠,運行vite build命令就可以把整個項目打包成可以發(fā)布到生產(chǎn)環(huán)境上的包