Vite(法語意為 "快速的",發(fā)音 /vit/,發(fā)音同 "veet")是一種新型前端構(gòu)建工具,能夠顯著提升前端開發(fā)體驗。它主要由兩部分組成:
一個開發(fā)服務器,它基于 原生 ES 模塊 提供了 豐富的內(nèi)建功能,如速度快到驚人的 模塊熱更新(HMR)。
一套構(gòu)建指令,它使用 Rollup 打包你的代碼,并且它是預配置的,可輸出用于生產(chǎn)環(huán)境的高度優(yōu)化過的靜態(tài)資源。
Vite 通過在一開始將應用中的模塊區(qū)分為 依賴 和 源碼 兩類,改進了開發(fā)服務器啟動時間。
-
依賴 大多為在開發(fā)時不會變動的純 JavaScript。一些較大的依賴(例如有上百個模塊的組件庫)處理的代價也很高。依賴也通常會存在多種模塊化格式(例如 ESM 或者 CommonJS)。
Vite 將會使用 esbuild 預構(gòu)建依賴。esbuild 使用 Go 編寫,并且比以 JavaScript 編寫的打包器預構(gòu)建依賴快 10-100 倍。
-
源碼 通常包含一些并非直接是 JavaScript 的文件,需要轉(zhuǎn)換(例如 JSX,CSS 或者 Vue/Svelte 組件),時常會被編輯。同時,并不是所有的源碼都需要同時被加載(例如基于路由拆分的代碼模塊)。
Vite 以 原生 ESM 方式提供源碼。這實際上是讓瀏覽器接管了打包程序的部分工作:Vite 只需要在瀏覽器請求源碼時進行轉(zhuǎn)換并按需提供源碼。根據(jù)情景動態(tài)導入代碼,即只在當前屏幕上實際使用時才會被處理。