导读:Vite的第八个版本正式发布了。
由尤雨溪(Evan You)创建的流行前端构建工具Vite发布了 8.0,它带来了自 Vite 2 以来最重大的架构变化:从其双打包器设置完全迁移到Rolldown,这是一个单一的、统一的、基于 Rust 的打包器。
从其早期版本到现在,Vite 一直依赖于两个独立的打包工具:esbuild用于快速开发编译,Rollup用于优化生产构建。维护两个独立的转换流程意味着需要两个插件系统,不断增长的粘合代码,以及模块处理不一致导致的各种极端情况。
Vite 8 通过用 Rolldown 取代 esbuild 和 Rollup 解决了这个问题,Rolldown 在保持与现有 Vite 插件生态系统完全兼容的同时,将构建速度提高了 10 到 30 倍。
在测试期间,显示实际性能提升显著。Linear 的生产环境构建时间从 46 秒缩短至 6 秒,Ramp 降低了 57%,Beehiiv 则提升了 64%。
在Hacker News上,一位前端开发者分享了类似的体验:
Vite 8 真是太棒了!我们在生产环境中看到了大约 8 倍的性能提升(4 分钟到 30 秒),而且几乎可以无缝替换原有版本。祝贺 Vite 团队(也感谢你们!)
另一份报告称,在一个拥有约一百万行代码的项目中,他们将原本需要 12 分钟的构建时间缩短到了仅 2 分钟。
在Reddit 的 r/rust 版块上,讨论突出了 Rust 在 JavaScript 工具链中日益重要的作用,Rolldown、Oxc 和 Lightning CSS 都是用 Rust 编写的。
Vite 8 与 Yarn 的即插即用 (PnP) 模块解析策略之间存在一个显著的兼容性问题,尤其是在 Windows 系统上。Vite 团队已表示未来可能不会积极支持 Yarn PnPnodeLinker 。对于受影响的项目,目前的临时解决方案是将 Yarn 的解析方式更改为node-modules其他方式,但这会抵消 PnP 在节省磁盘空间和提升安装速度方面的优势。
除了 Rolldown 集成之外,Vite 8 还引入了多项开发者体验改进。内置的 tsconfig 路径支持通过设置 `tsconfig.json` 参数,无需再使用别名插件resolve.tsconfigPaths。true原生emitDecoratorMetadata支持简化了 NestJS 和 Inversify 等框架的配置。
其新增的浏览器控制台转发功能(通过 ` server.forwardConsoletsconfig.json` 参数启用)可将客户端日志直接输出到终端,这在使用 AI 编码代理时尤为实用。此外,该版本还包含v6 版本,其中 React Refresh 转换使用Oxc@vitejs/plugin-react替换了 Babel ,从而减小了安装包的大小。
与竞争对手相比,Vite 8 将自身定位为与框架无关的Turbopack替代方案,后者仍然依赖于 Next.js 生态系统。最近的基准测试表明,Vite 8 在冷启动、热模块替换 (HMR) 和生产构建方面都是“最均衡的选择”。另一个基于 Rust 的打包工具Rspack提供了强大的 Webpack 兼容性,但缺乏 Vite 那样丰富的插件生态系统。
对于迁移,团队建议大型项目采用循序渐进的方法:首先切换到rolldown-viteVite 7 上的软件包,以隔离 Rolldown 特有的问题,然后再升级到 Vite 8。大多数项目无需更改配置即可直接升级,这得益于内置的兼容层,它可以自动转换现有的 esbuild 和 Rollup 选项。
Vite 是一款开源构建工具,目前每周下载量超过 6500 万次。它为 SvelteKit、Nuxt、Astro、React Router 和 Storybook 等框架提供支持,并由 VoidZero 团队负责维护。
作者:万能的大雄
本篇文章为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。