今年3月 Vite 8 完成重磅架构升级,彻底抛弃 esbuild + Rollup 双引擎,全线改用 Rust 编写的 Rolldown 单打包器,性能大幅跃升。
时隔三个月,Vite 8.1 正式官宣发布!
目前 Vite 周下载量已达 14160 万,热度逼近 Vite7 累计总量。本次更新无破坏性变更,主打性能暴涨、体验优化,尤其解决大型前端项目的开发卡顿问题。
1. 开发提速15倍:全新打包开发模式
老版本 Vite 非打包开发模式,在万级模块的大型项目中,会存在启动慢、刷新卡顿的问题。
Vite 8.1 上线实验性打包开发模式(原全打包模式),专门根治大项目性能痛点,实测数据炸裂:
-
万级 React 项目:启动快15倍,整页重载快10倍
-
企业项目 Linear:冷启动提速3倍,页面重载提速40%,网络请求减少90%
-
核心保留:项目再大,HMR 热更新依旧秒级响应
开启方式(二选一即可):
// vite.config.jsimport { defineConfig } from 'vite'export default defineConfig({ experimental: { bundledDev: true }})
# 命令行直接启动
vite --experimental-bundle
小贴士:该功能目前为实验特性,适配官方基础插件,部分第三方插件可能不兼容,生产环境慎用。
2. 优化缓存:彻底解决哈希连锁失效
之前有个很头疼的问题:改一行工具代码,所有关联页面的 chunk 哈希都会变动,用户缓存直接失效、重复加载资源。
8.1 新增Chunk Import Map 实验特性,基于浏览器原生能力,精准定位变更模块,只更新改动文件,杜绝哈希连锁刷新,大幅提升浏览器缓存命中率,大项目首屏加载更快。
⚠️ 该功能与 experimental.renderBuiltUrl 互斥,只能二选一使用。
3. 原生支持 Wasm,无需第三方插件
以往项目使用 Wasm,必须安装额外插件。Vite 8.1 直接内置 Wasm ESM 标准支持,零插件、开箱即用。
import { add } from './add.wasm'
console.log(add(1, 2)) // 直接调用,输出 3
4. CSS 性能升级:全力拥抱 Lightning CSS
官方明确后续迭代方向:未来大版本将默认用 Lightning CSS 替代 PostCSS。
8.1 补齐了 Lightning CSS 的短板,支持外部 CSS 引入、插件自定义依赖,完全适配日常开发场景。相比 PostCSS,编译和压缩速度更快。
手动开启极速 CSS 转换:
export default defineConfig({ css: { transformer: 'lightningcss' }})
5. 两处实用细节优化
① glob 匹配支持大小写不敏感
解决 Windows / Mac 跨平台文件大小写兼容问题,代码更简洁:
// 同时匹配 module1.js / Module1.jsconst modules = import.meta.glob('./dir/module*.js', { caseSensitive: false})
② 自定义 HTML 资源解析
支持自定义标签、自定义属性识别静态资源,完美适配主题切换、自定义业务组件场景:
export default defineConfig({ html: { additionalAssetSources: { 'html-import': { srcAttributes: 'src' }, img: { srcAttributes: ['data-src-dark', 'data-src-light'] } } }})
6. 升级指南与适配建议
快速升级命令:
pnpm add vite@8.1
# 或更新至最新稳定版
pnpm add vite@latest
适配建议:
-
中小型项目:直接无缝升级,零成本体验全部优化
-
大型项目:尝试开启打包开发模式,大幅提升开发效率
-
性能敏感项目:测试 Lightning CSS,提前适配未来规范
-
生产环境:所有实验性功能谨慎启用