查看原文
其他

Vite 5 正式发布!

小懒 FED实验室 2024-02-12
关注下方公众号,获取更多热点资讯

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,这是一项改善启动时间的新功能。它允许你定义一个模块列表,这些模块应在服务器启动后立即进行预转换。使用 --openserver.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 应该是直接的。但是建议在升级之前仔细阅读详细的迁移指南。

大家都在看

继续滑动看下一个

Vite 5 正式发布!

小懒 FED实验室
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存