Vite 5.0 发布!
2023 年 11 月 16 日
Vite 4 发布 已经快一年了,它为生态系统提供了一个坚实的基础。每周 npm 下载量从 250 万跃升至 750 万,因为项目不断建立在共享基础设施之上。框架继续创新,除了 Astro、Nuxt、SvelteKit、Solid Start、Qwik City 等之外,我们还看到新的框架加入并使生态系统更加强大。RedwoodJS 和 Remix 切换到 Vite 为 React 生态系统中进一步采用铺平了道路。Vitest 的增长速度甚至比 Vite 还快。它的团队一直在努力工作,并将很快发布 Vitest 1.0。Vite 与其他工具(如 Storybook、Nx 和 Playwright)一起使用的情况不断改进,环境也是如此,Vite dev 在 Deno 和 Bun 中都可以工作。
一个月前,我们举办了第二届 ViteConf,由 StackBlitz 主办。像去年一样,生态系统中的大多数项目聚集在一起分享想法并进行连接,以不断扩大公共领域。我们还看到像 Volar 和 Nitro 这样的新组件补充了元框架工具带。Rollup 团队在同一天发布了 Rollup 4,这是 Lukas 去年开始的传统。
六个月前,Vite 4.3 发布。此版本显着提高了开发服务器的性能。但是,仍有很大的改进空间。在 ViteConf 上,Evan You 公布了 Vite 的长期计划,即致力于 Rolldown,这是 Rollup 的 Rust 端口,具有兼容的 API。一旦准备就绪,我们打算在 Vite Core 中使用它来承担 Rollup 和 esbuild 的任务。这将意味着构建性能的提升(并且随着我们将 Vite 本身对性能敏感的部分迁移到 Rust,开发性能也会随之提高),并且大大减少了开发和构建之间不一致的情况。Rolldown 目前处于早期阶段,团队正准备在年底前开源代码库。敬请关注!
今天,我们标志着 Vite 发展道路上的又一个重要里程碑。Vite 团队、贡献者 和生态系统合作伙伴很高兴地宣布 Vite 5 的发布。Vite 现在正在使用 Rollup 4,这已经代表了构建性能的重大提升。并且还有新的选项可以改善您的开发服务器性能配置文件。
Vite 5 专注于清理 API(删除已弃用的功能)并简化了多个功能,从而解决了长期存在的问题,例如切换 define
以使用正确的 AST 替换而不是正则表达式。我们还继续采取措施来面向未来的 Vite(现在需要 Node.js 18+,并且 CJS Node API 已被弃用)。
快速链接
其他语言的文档
如果您是 Vite 的新手,我们建议首先阅读 入门 和 功能 指南。
我们感谢超过 850 位 Vite Core 贡献者,以及 Vite 插件、集成、工具和翻译的维护者和贡献者,他们帮助我们实现了这一目标。我们鼓励您参与进来并继续与我们一起改进 Vite。您可以在我们的 贡献指南 中了解更多信息。要开始,我们建议 分类问题、审查 PR、根据开放问题发送失败测试的 PR,以及在 讨论 和 Vite Land 的 帮助论坛 中帮助他人。在此过程中,您将学到很多东西,并且可以顺利地为项目做出进一步的贡献。如果您有疑问,请加入我们的 Discord 社区,并在 #contributing 频道 上打个招呼。
要保持最新状态,请在 X 或 Mastodon 上关注我们。
Vite 5 快速入门
使用 pnpm create vite
搭建一个带有您首选框架的 Vite 项目,或者在线打开一个入门模板以使用 vite.new 体验 Vite 5。您还可以运行 pnpm create vite-extra
以访问来自其他框架和运行时的模板(Solid、Deno、SSR 和库入门程序)。当您在 Others
选项下运行 create vite
时,也可以使用 create vite-extra
模板。
请注意,Vite 入门模板旨在用作测试 Vite 与不同框架的游乐场。在构建您的下一个项目时,我们建议联系每个框架推荐的入门程序。某些框架现在还在 create vite
中重定向到它们的入门程序(Vue 的 create-vue
和 Nuxt 3
,以及 Svelte 的 SvelteKit
)。
Node.js 支持
Vite 不再支持 Node.js 14 / 16 / 17 / 19,这些版本已达到 EOL。现在需要 Node.js 18 / 20+。
性能
除了 Rollup 4 的构建性能改进之外,还有一个新指南可以帮助您识别和修复常见的性能问题,网址为 https://vite.ac.cn/guide/performance。
Vite 5 还引入了 server.warmup,这是一个新功能,可以缩短启动时间。它允许您定义一个模块列表,这些模块应在服务器启动后立即进行预转换。当使用 --open
或 server.open
时,Vite 还会自动预热您的应用程序的入口点或提供的 URL 以打开。
主要变更
- Vite 现在由 Rollup 4 提供支持
- CJS Node API 已被弃用
- 重构
define
和import.meta.env.*
替换策略 - SSR 外部化模块值现在与生产环境匹配
worker.plugins
现在是一个函数- 允许包含
.
的路径回退到 index.html - 对齐开发和预览 HTML 服务行为
- 清单文件现在默认在
.vite
目录中生成 - CLI 快捷方式需要额外按下
Enter
键 - 更新
experimentalDecorators
和useDefineForClassFields
TypeScript 行为 - 删除
--https
标志和https: true
- 删除
resolvePackageEntry
和resolvePackageData
API - 删除以前弃用的 API
- 阅读有关影响插件和工具作者的高级更改的更多信息
迁移到 Vite 5
我们与生态系统合作伙伴合作,以确保平稳迁移到这个新的主要版本。再次,vite-ecosystem-ci 对于帮助我们进行更大胆的更改同时避免回归至关重要。我们很高兴看到其他生态系统采用类似的方案来改善他们的项目与下游维护者之间的协作。
对于大多数项目而言,更新到 Vite 5 应该很简单。但是我们建议在升级之前查看 详细的迁移指南。
可以在 Vite 5 变更日志 中找到包含 Vite core 所有更改的低级细分。
致谢
Vite 5 是我们的贡献者社区、下游维护者、插件作者和 Vite 团队 长期工作的结果。特别感谢 Bjorn Lu 领导此主要版本的发布过程。
我们还要感谢赞助 Vite 开发的个人和公司。StackBlitz、Nuxt Labs 和 Astro 继续通过聘请 Vite 团队成员来投资 Vite。向 Vite 的 GitHub Sponsors、Vite 的 Open Collective 和 Evan You 的 GitHub Sponsors 上的赞助商致敬。特别提及 Remix 在切换到 Vite 后成为黄金赞助商并做出贡献。