Vite 5 正式发布!
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 中工作。
一个月前,迎来了由 StackBlitz 主办的第二届 ViteConf。和去年一样,生态系统中的大多数项目都聚集在一起,分享想法,建立联系,以不断扩大公共资源。还看到了新的元框架工具包,如 Volar 和 Nitro。Rollup 团队在同一天发布了 Rollup 4,这是 Lukas 去年发起的传统。
六个月前,Vite 4.3 发布。该版本大大提高了开发服务器的性能。不过,仍有很大的改进空间。在 ViteConf 上,Evan You 公布了 Vite 的长期计划,即开发名为 Rolldown 的 Rust 版 Rollup,并具有兼容的 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 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 重定向到它们的启动器(create-vue 和 Nuxt 3 用于 Vue,SvelteKit 用于 Svelte)。
Node.js 支持
Vite 不再支持已到期的 Node.js 14 / 16 / 17 / 19。现在需要 Node.js 18 / 20 以上。
性能
除了 Rollup 4 的构建性能改进外,还有一份新指南可帮助您在 https://vitejs.dev/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
目录中生成 Manifest 文件CLI 快捷键需要额外按下回车键 更新 experimentalDecorators
和useDefineForClassFields
TypeScript 行为移除 --https
标志和https:true
移除 resolvePackageEntry
和resolvePackageData
API移除以前废弃的API 了解有关影响插件和工具作者的高级更改的更多信
迁移到 Vite 5
Vite 团队已经与生态系统的合作伙伴合作,以确保顺利迁移到这个新版本。vite-ecosystem-ci 再次发挥了重要作用,帮助在避免回归的同时进行更大胆的改变。很高兴看到其他生态系统采用了类似的方案,以改进其项目与下游维护者之间的协作。
对于大多数项目来说,升级到 Vite 5 应该是直接的。但是建议在升级之前仔细阅读详细的迁移指南。
大家都在看