Vite 8发布:构建速度快了10倍

更新日期: 2026-03-03 阅读: 43 标签: Vite

如果你写前端代码,肯定听过Vite这个名字。简单说,它就是帮你把写的代码变成能跑在浏览器里的东西的工具。这几年,已经有超过一半的前端开发者在用Vite了

前几天Vite 8的测试版出来了。这次不是小打小闹的升级,而是把底层的"发动机"整个换掉了。有团队试过之后发现,打包时间从46秒直接降到了6秒

这篇文章就给你讲讲Vite 8到底变了啥,对你的日常开发有啥用,以及你现在要不要升级。


01 以前的Vite:像混动汽车,两头跑

要理解Vite 8的厉害,得先知道以前它是怎么工作的。

Vite刚出来的时候,做了一个特别聪明的设计:开发的时候用一个引擎,打包的时候换另一个

  • 开发时用esbuild:这东西用Go语言写的,跑得飞快,你改代码能立刻看到效果

  • 打包时用Rollup:这东西打包很稳,插件多,能把代码优化得好好的

这个设计在当时确实好使,就像混动汽车——市区用电,高速用油,各取所长

但时间长了,问题也来了:

  • 两个引擎说不一样的话:写插件要写两套,有时候开发环境好好的,一打包就出问题

  • 中间得有人当翻译:Vite团队要写很多"胶水代码"让这两个引擎好好配合

  • 性能有天花板:用JavaScript写的Rollup,打包大项目的时候确实慢

随着项目越来越大,这些问题越来越明显。Vite团队想了好久,最后决定:干脆自己造一个引擎吧!


02 现在的Vite 8:换上纯电超跑,一路到底

这个新引擎叫Rolldown。它用Rust语言写的——Rust是一种性能特别强的编程语言,比JavaScript快得多

现在从开发到打包,全程都用这一个引擎。这就好比从"混动车"换成了"纯电超跑":

  • 油门响应更快:启动项目、修改代码,反应更迅速

  • 续航更持久:打包大项目不费劲

  • 不用来回切换:一个模式跑到底,省心

到底快了多少?

Vite官方和一些早期试用的团队放出了数据

  • Linear团队:原来打包要等46秒,现在只要6秒

  • Ramp团队:构建时间少了57%

  • Beehiiv团队:构建时间少了64%

  • 奔驰技术团队:构建时间最多少了38%

这意味着什么?以前你下班前运行打包命令,可以去倒杯咖啡慢慢等;现在刚站起身,活儿已经干完了。


03 代码说话:Vite 8的新特性怎么用?

光说快不行,得看看代码里怎么用。下面这几个新特性,都是日常开发能用得上的。

1. 路径别名,开箱即用

以前你想用@/components/Button这样的简洁路径,得先装个插件,然后在vite.config.js里配一遍,再到tsconfig.json里再配一遍。

Vite 8简单多了,直接在配置里开个开关

// vite.config.js - Vite 8
import { defineConfig } from 'vite'

export default defineConfig({
  resolve: {
    tsconfigPaths: true // 一行搞定,自动读tsconfig.json里的配置
  }
})

从此告别"配了两遍还对不上"的烦恼。

2. 装饰器支持,对后端框架更友好

如果你用NestJS或者TypeORM,肯定写过这样的代码:

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;
  
  @Column()
  @Length(10, 20)
  name: string;
}

以前Vite看到这些@符号可能会懵,得专门配置。Vite 8直接原生支持emitDecoratorMetadata,零配置就能用。对写全栈的同学来说,这能省不少事。

3. WebAssembly支持更完善

如果你要用WebAssembly做高性能计算,比如处理图片:

// 以前WASM在服务端渲染时可能报错
// Vite 8完美支持服务端渲染
import wasmModule from './image-processor.wasm?init'

const initWasm = async () => {
  const module = await wasmModule({
    // 在服务端也能正常运行
    env: { ... }
  })
  return module
}

现在可以放心地在服务端渲染项目里用WASM了

4. manualChunks改名了

以前你可能是这么配代码分割的:

// 旧写法,Vite 8直接报错
rollupOptions: {
  output: {
    manualChunks: {
      'vue-vendor': ['vue', 'pinia'],
      'monaco': ['monaco-editor'],
    }
  }
}

Vite 8里改成这样了

// 新写法
rollupOptions: {
  output: {
    advancedChunks: {
      groups: [
        { name: 'vue-vendor', test: /[\\/]node_modules[\\/](vue|pinia)[\\/]/ },
        { name: 'monaco', test: /[\\/]node_modules[\\/]monaco-editor[\\/]/ },
      ]
    }
  }
}

改起来也不麻烦,就是把名字换一下,规则稍微写细一点。


04 我该不该升级?

这是个好问题。给你两个建议:

如果是新项目

直接上Vite 8!享受最新最快的体验

创建一个新项目只需要:

npm create vite@latest my-project -- --template react

然后把package.json里的Vite版本改成^8.0.0-beta.0就行。

如果是老项目

分两种情况:

项目不大:可以尝试直接升级。改一下package.json:

{
  "devDependencies": {
    "vite": "^8.0.0-beta.0"
  }
}

运行npm install,然后npm run build。如果一切正常,恭喜你升级成功

项目很大:建议"渐进式迁移"。Vite团队贴心地做了一个叫rolldown-vite的预览包

npm install -D rolldown-vite

然后你可以先试试新引擎,等所有问题都解决了再正式升级。

要改代码吗?

大概率不用。Vite团队很注重兼容性,大部分现有插件都能直接用。只有极少数依赖老引擎特有功能的项目,才需要微调配置。

比如以前有些项目会这样配置:

// 如果你用了这个,可能需要调整
optimizeDeps: {
  esbuildOptions: {
    // 一些esbuild特有的配置
  }
}

遇到这种情况,查一下官方迁移指南就行


05 升级要注意的几个地方

Vite 8毕竟是大版本升级,有几个地方得留心

  1. esbuild要被淘汰了:optimizeDeps.esbuildOptions这个配置现在不推荐用了,以后会彻底移除。Vite现在用Oxc做JavaScript转换,用Lightning css做CSS压缩。

  2. 浏览器兼容性变了:默认支持的浏览器版本提高了,现在是Chrome 111、Firefox 114以上。如果你要兼容老浏览器,得自己配一下build.target。

  3. 如果你的项目依赖esbuild:比如用了某个插件里的transformWithEsbuild函数,得自己装一下esbuild,因为Vite 8不再自带esbuild了。

  4. 如果遇到打包问题:可以在vite.config.js里加一行legacy.inconsistentCjsInterop: true试试,这能暂时回到以前的CommonJS处理方式。


写在最后

Vite 8的发布,不只是"更快了"这么简单。它代表了前端工具正在从"拼凑"走向"统一"。

以前我们要用好几个工具拼在一起干活,每个工具都有自己的脾气。现在Vite想把这一整套东西都自己做,从解析、转换到打包、压缩,全都用Rust写,又快又稳

对咱们普通开发者来说,最直接的好处就是:等待时间更短,糟心事更少,写代码更爽

如果你还没试过Vite 8,不妨周末拿个小项目体验一下。从跑npm run build那一刻开始,你就能感受到什么叫"快如闪电"。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/13355

相关推荐

VueConf 2025 技术盘点:Vue与Vite迈向大一统时代

7月的深圳,VueConf 2025大会刚刚结束。Vue作者尤雨溪带来了关于Vue和Vite的最新动态。这些更新将深刻影响前端开发方式,下面就是本次大会的核心内容。

使用Vite快速构建前端React项目

Vite是一种面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端开发体验。除了Vite外,前端著名的构建工具还有Webpack和Gulp。目前,Vite已经发布了Vite3

在vite2和Vue3中配置Mockjs

在 Vite2 与 Vue3 中使用Mockjs时有一些官方文档没有提到的注意点,特意做此记录。MockJS 依赖的安装,在 package.json 中设置环境变量,在 vite.config.js 中添加 mockjs 插件

Vite多页面应用配置&使用vite-plugin-html向html模板注入数据或标签

在开发过程中,简单地导航或链接到 /nested/ - 将会按预期工作,与正常的静态文件服务器表现一致。也就是说,如果你的文件夹有如下层级:

vue3 vite 系统标题 系统名称统一配置

想要统一配置系统名称 或者其他的,需要在vue3中使用 vite 的环境变量;vite 的环境变量 需要创建两个文件(和 vite.config.js 文件同一目录)

Vite开发环境搭建

Vite现在可谓是炙手可热,可能很多小伙伴还没有使用过Vite,但是我相信大多数小伙伴已经在使用Vite了,因为是太香了有没有。可能在使用过程中很多东西Vite不是配置好的,并不像Vue-cli配置的很周全,那么今天就说一下如何配置开发环境

Vite开发快速入门

Vite (法语意为快速的,发音 /vit/) 是一种面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端的开发体验。除了Vite外,前端著名的构建工具还有Webpack和Gulp。目前,Vite已经发布了Vite2,Vite全新的插件架构、丝滑的开发体验

你还不会写 vite 插件吗?没关系,我教你啊!

vite 其实就是一个由原生 ES Module 驱动的新型 Web 开发前端构建工具。vite 插件 就可以很好的扩展 vite 自身不能做到的事情,比如 文件图片的压缩、 对 commonjs 的支持、 打包进度条 等等。

vue3.x+ts+vite2环境变量配置

默认 dev 环境下使用 .env.development 环境变量配置, build 环境下使用 .env.production ,所以不需要在 package.json 中再指定模式了

Vite使Vue CLI过时了吗?

Vue 生态系统中有一个名为 Vite 的新构建工具,它的开发服务器比 Vue CLI 快 10-100 倍。这是否意味着 Vue CLI 已经过时了?在本文中,我将比较这两种构建工具

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!