Bun v1.1.30版本更新修复了多项问题和bug,引入了新功能,并对性能进行了改进。主要亮点包括CSS解析与打包、bun publish功能、字节码编译和Node.js兼容性改进等。此次更新对前端开发和Node.js生态系统产生了积极影响,提升了开发效率、增强了Node.js兼容性并优化了性能。
修复了57个bug和150个用户反馈问题,引入CSS解析与打包功能,增加了bun publish功能支持npm包的发布,通过字节码编译提升了启动时间,以及在Node.js兼容性方面进行了多项改进。
基于Zig语言重写CSS解析器和打包器,与Bun的JS和TS解析器、打包器和运行时垂直集成,提高了CSS处理性能,允许直接导入CSS文件,简化前端开发流程。
允许开发者使用Bun发布npm包,支持读取.npmrc文件进行认证,处理OTP/两因素认证,以及处理package.json中的字段。
通过将JS和TS编译为字节码,Bun显著提升了应用启动时间,虽然字节码文件较大,但启动速度提升显著。
Bun在Node.js兼容性方面进行多项改进,特别是在crypto模块性能上实现了30倍的性能提升,同时修复了多个与Node.js相关的bug。
作者:@Jarred Sumner
原文:https://bun.sh/blog/bun-v1.1.30
背景
Bun v1.1.30 是 Bun 项目的一个重大更新,由 Jarred Sumner 于 2024 年 10 月 8 日发布。此次更新修复了 57 个 bug,解决了 150 个用户反馈的问题,并引入了多项新功能和性能改进。
要点
Bun v1.1.30 的主要亮点包括:
CSS 解析与打包:引入了基于 Zig 的 CSS 解析器和打包器,显著提升了 CSS 处理的性能。
bun publish:作为 npm publish 的直接替代品,支持从 Bun 发布 npm 包。
字节码编译:通过字节码编译,启动时间提升了 2 倍。
Node.js 兼容性改进:大幅提升了 crypto.privateEncrypt 和 crypto.publicDecrypt 的性能,以及其他多项 Node.js 兼容性改进。
分析
CSS 解析与打包
Bun 的 CSS 解析器和打包器基于 Zig 语言重写,与 Bun 的 JavaScript 和 TypeScript 解析器、打包器和运行时垂直集成。这不仅提高了 CSS 处理的性能,还允许在 JavaScript 和 TypeScript 中直接导入 CSS 文件,简化了前端开发的流程。
bun publish
这一功能使得开发者可以直接使用 Bun 发布 npm 包,支持读取 .npmrc 文件进行认证,处理 OTP / 两因素认证,以及处理 package.json 中的各种字段。
字节码编译
通过将 JavaScript 和 TypeScript 编译为字节码,Bun 显著提升了应用的启动时间。虽然字节码文件可能比源代码大 8 倍,但启动速度的提升显著。
Node.js 兼容性改进
Bun 在 Node.js 兼容性方面进行了多项改进,特别是在 crypto 模块的性能上,通过使用 BoringSSL 实现了 30 倍的性能提升。此外,Bun 还修复了多个与 Node.js 相关的 bug,提升了整体兼容性。
影响
Bun v1.1.30 的发布对前端开发和 Node.js 生态系统产生了积极影响:
提升开发效率:通过集成 CSS 解析和打包功能,Bun 简化了前端开发的流程,减少了开发者的负担。
增强 Node.js 兼容性:Bun 的改进使得更多的 Node.js 应用和库可以在 Bun 上无缝运行,扩大了 Bun 的应用范围。
性能优化:字节码编译和 crypto 模块的性能提升显著改善了应用的启动时间和运行效率,特别是在大型应用中。
结论
Bun v1.1.30 的发布标志着 Bun 在性能、功能和兼容性方面的显著进步。随着越来越多的开发者采用 Bun,其在 JavaScript 生态系统中的地位将进一步巩固。未来,Bun 可能会继续在性能优化和生态系统集成方面发力,成为前端和 Node.js 开发的重要工具。
AI 阅:了解技术资讯的一种方式。