Vite Plus 要來了?! 尤雨溪最新演講:圍繞 Vite 的前端統(tǒng)一工具鏈
Vite 的發(fā)展歷程
- ? 2020 年:作為實驗性質(zhì)的原型開始開發(fā),最初僅為 Vue 的用例設(shè)計。
- ? 2021 年:Vite 2.0 轉(zhuǎn)型成通用構(gòu)建工具。
- ? 2022 年:開始被新興框架廣泛采用為底層構(gòu)建工具,如 Nuxt 3、SvelteKit、Astro、SolidStart 等。
- ? 2023 年:React 元框架也開始遷移到 Vite,如 Redwood、Remix。
- ? 2024 年:更多基于 Vite 的方案出現(xiàn),如 TanStack Start、One、Ember。
- ? 2025 年:create-react-app 被官方廢棄后的事實繼承者。
Vite 的現(xiàn)狀
? 下載量:npm 周下載量 2200+ 萬次,月下載量即將突破 1 億次,增長迅速。
圖片
? 開發(fā)者調(diào)查:在 State of JS 2024 開發(fā)者問卷調(diào)查中,Vite 在增長、滿意度、感興趣程度等方面表現(xiàn)優(yōu)異,是全類別最受歡迎的庫 / 工具。
? 生態(tài):龐大、活躍、多元化,眾多公司已在生產(chǎn)環(huán)境中使用 Vite 或基于 Vite 的框架。
圖片
Vite 已經(jīng)成為了 下一代 web 應(yīng)用的共享基建層。
Vite 當(dāng)前架構(gòu)的問題
? 職責(zé)重疊的依賴:底層依賴多個職責(zé)重復(fù)的第三方工具,如 esbuild、Rollup、SWC 等,導(dǎo)致效率問題和打包行為的不一致。
圖片
? 生產(chǎn)構(gòu)建速度:相比原生語言寫的 bundler 來說較慢,存在多次重復(fù) parse / transform / codegen,且在 js / native 之間傳遞字符串。
? 性能瓶頸:Unbundled ESM 在大型項目中存在性能瓶頸,請求數(shù)量巨大時表現(xiàn)不佳。
圖片
? 高階功能缺失:如極致拆包、增量構(gòu)建、Module Federation 等功能不足。
因此,Vite 團(tuán)隊決定開發(fā) Rolldown。其目標(biāo)是:兼容 Rollup 的插件 API 和生態(tài),利用 Rust 提升生產(chǎn)構(gòu)建性能,添加 Rollup / esbuild 不具備的高階功能,解決 Vite unbundled ESM 的性能瓶頸。
下一代 JS 統(tǒng)一工具鏈:Void(0)
? 背景:Vite 面對的問題其實是整個 JS 工具生態(tài)一直存在的問題的縮影。JS 工具生態(tài)在各個層面都非常碎片化,存在選擇困難、復(fù)雜度爆炸、工具不兼容、重復(fù)配置、行為不一致等問題,需要一個統(tǒng)一的工具鏈。
? 時機(jī):生態(tài)需求逐漸清晰,Vite 展現(xiàn)出了強(qiáng)大的共識達(dá)成速度,Rust for JS 的生態(tài)地基也已成熟。
? 架構(gòu):包括 Vite Dev server、HMR 應(yīng)用支持、框架支持,Rolldown 打包工具,Oxc 語言工具鏈,Vitest Vite-native 測試工具等,覆蓋 Parser、Semantic Analysis、Linter、Formatter、Transformer、Resolver、Minfier 等功能,以 Composable NPM Packages & Rust Crates 的形式提供。
圖片
為什么選擇 Rust?
? 性能與安全:在極限性能和內(nèi)存安全之間取得平衡。
? 生態(tài)成熟:已有相對成熟的 for JS 開發(fā)者生態(tài),如 napi-rs、Web Assembly 支持等,方便找到貢獻(xiàn)者和進(jìn)行開發(fā)。
圖片
目前的進(jìn)展
? OXC:在 Parser、Linter、Resolver、Transformer、Minifier、Formatter 等方面取得顯著進(jìn)展,性能表現(xiàn)優(yōu)異,如最快的 parser、linter、resolver、transformer 等,內(nèi)存占用和 binary 文件大小也更小。
? Rolldown:基礎(chǔ)打包、內(nèi)置 OXC 轉(zhuǎn)譯 + 模塊解析、高階功能等已實現(xiàn),1.0 Beta 版本在功能對齊、性能等方面表現(xiàn)出色,正與 Vite 進(jìn)行整合。
未來規(guī)劃
? Vite Now (v6):繼續(xù)使用現(xiàn)有架構(gòu)。
圖片
? Vite Next (2025 第一季度):引入 Rolldown 和 Oxc,負(fù)責(zé)模塊解析、TS / JSX 轉(zhuǎn)譯、壓縮等,提升生產(chǎn)構(gòu)建性能和功能。
圖片
? Vite Future (2025 第二季度):進(jìn)一步整合 Rolldown 和 Oxc,實現(xiàn)開發(fā)打包 + HMR、生產(chǎn)打包 + 產(chǎn)物優(yōu)化等全面功能。
圖片
? Vite Plus:作為 “cargo for JavaScript”,提供 Dev / Build、Test / Bench、Lint / Format 等一站式工具鏈解決方案,還包括文檔、運行 TypeScript、項目腳手架、Monorepo 任務(wù)調(diào)度等功能,計劃 2025 年推出。
圖片