繼在五個(gè)月前發(fā)布 Vite 3 后仿野,現(xiàn)在 Vite 4 正式發(fā)布。如今 npm 每周的下載量從 100 萬(wàn)上升到 250 萬(wàn)她君,并繼續(xù)保持增長(zhǎng)脚作。在今年的 Jamstack Conf 調(diào)查中,社區(qū)中的使用率從 14% 躍升至 32%缔刹,同時(shí)保持了 9.7 分的高滿(mǎn)意度球涛。
主要變化
與 Vite 3 相比,這個(gè)主要版本的更新幅度較小校镐,主要目的是升級(jí)到 Rollup 3亿扁。我們已經(jīng)與 Vite 生態(tài)中的各方合作,確保這個(gè)新的主要版本有一個(gè)平滑的升級(jí)路徑鸟廓。
Rollup 3
Vite 現(xiàn)在使用 Rollup 3魏烫,它讓我們簡(jiǎn)化了 Vite 的內(nèi)部資源處理,并有許多改進(jìn)肝箱。點(diǎn)擊這里查看 Rollup 3 更新說(shuō)明。
框架插件脫離了 Vite core monorepo
@vitejs/plugin-vue 和 @vitejs/plugin-react 從 Vite 的第一個(gè)版本開(kāi)始就是 Vite core monorepo 的一部分稀蟋。這有助于我們?cè)谶M(jìn)行修改時(shí)獲得一個(gè)緊密的反饋回路煌张,因?yàn)槲覀兺瑫r(shí)得到了 Core 和插件的測(cè)試和發(fā)布。借助 Vite-ecosystem-ci退客,我們可以通過(guò)這些在獨(dú)立倉(cāng)庫(kù)中開(kāi)發(fā)的插件獲得這種反饋骏融。因此從 Vite 4 開(kāi)始,它們已經(jīng)從 Vite core monorepo 中移出萌狂。
開(kāi)發(fā)過(guò)程中使用 SWC 的新 React 插件
SWC 現(xiàn)在是 Babel 的成熟替代品档玻,特別是在 React 項(xiàng)目的背景下。SWC 的 React Fast Refresh 實(shí)現(xiàn)比 Babel 快很多茫藏,對(duì)于一些項(xiàng)目來(lái)說(shuō)误趴,它現(xiàn)在是一個(gè)更好的選擇。從 Vite 4 開(kāi)始务傲,有兩個(gè)插件可用于 React 項(xiàng)目凉当,他們各自都有不同的取舍和權(quán)衡枣申。我們認(rèn)為目前這兩種方法都值得支持,未來(lái)我們會(huì)繼續(xù)探索對(duì)這兩個(gè)插件的改進(jìn)看杭。
@vitejs/plugin-react
@vitejs/plugin-react 是一個(gè)使用 esbuild 和 Babel 的插件忠藤,能夠以占用空間小的軟件包和靈活使用 babel transform pipeline 實(shí)現(xiàn)快速的 HMR
@vitejs/plugin-react-swc (新)
@vitejs/plugin-react-swc 是一個(gè)新的插件,在構(gòu)建過(guò)程中使用 esbuild楼雹,但在開(kāi)發(fā)過(guò)程中用 SWC 取代 Babel模孩。對(duì)于不需要非標(biāo)準(zhǔn) React 擴(kuò)展的大項(xiàng)目,冷啟動(dòng)和 HMR 的速度會(huì)明顯加快贮缅。
兼容性
現(xiàn)代瀏覽器構(gòu)建現(xiàn)在默認(rèn)以 safari14 為目標(biāo)榨咐,以實(shí)現(xiàn)更廣泛的 ES2020 兼容性。這意味著携悯,現(xiàn)代構(gòu)建現(xiàn)在可以使用 BigInt祭芦,并且空值合并運(yùn)算符(nullish coallessing operator)不再被轉(zhuǎn)譯。如果你需要支持舊的瀏覽器憔鬼,你可以像往常一樣添加 @vitejs/plugin-legacy龟劲。
以字符串形式導(dǎo)入 CSS
在 Vite 3 中,導(dǎo)入默認(rèn)導(dǎo)出的 .css 文件可能會(huì)帶來(lái) CSS 的重復(fù)加載轴或。
import cssString from './global.css';
從 Vite 4 開(kāi)始昌跌,.css 默認(rèn)導(dǎo)出已被廢棄。在這樣的情況下照雁,需要使用 ?inline 查詢(xún)后綴修飾符蚕愤,因?yàn)樗粫?huì)發(fā)出導(dǎo)入的 .css 樣式。
import stuff from './global.css?inline'
其他功能
預(yù)捆綁依賴(lài)項(xiàng)時(shí)支持 patch-package
更加干凈的構(gòu)建日志輸出饺蚊,并切換到 kB萍诱,以與瀏覽器開(kāi)發(fā)工具保持一致
改進(jìn)了 SSR 過(guò)程中的錯(cuò)誤信息