Bun 1.0.19 版本更新:重要的性能优化与功能改进

Bun的最新版本1.0.19为JavaScript和TypeScript运行环境带来了一系列重要更新。这个版本在性能、兼容性和可用性方面进行了显著改进,解决了多个问题,并提高了整体的开发者体验。

Bun 1.0.19中的一个突出更新是重新引入@types/bun,此前称为bun-types。这一变化极大地简化了Bun与TypeScript的整合,解决了先前实现中的一些问题。开发者不再需要为Bun特别配置tsconfig.json,而新包无缝重导出@types/node包,确保了兼容性和易用性。

对于JavaScript生态系统的安全来说,Bun 1.0.19现在完全支持bcrypt和argon2包,这是对N-API兼容性改进的重要一步。这一更新允许开发者在Bun环境中使用这些流行的加密包进行安全的密码哈希和验证,使Bun成为构建安全应用程序的更加多功能的平台。

Bun 1.0.19引入了几项性能增强。setTimeout和setInterval的实现在Linux x64系统上现在快了四倍,这要归功于一种新的计时器堆,它有效地管理计时器。对于严重依赖计时器操作的应用程序来说,这一改进至关重要,提供了显著更好的性能和资源利用。

此外,针对Linux系统上处理大量输入的Bun.spawnSync进行了优化,为具有大量输出的子进程提供了50%的性能提升。Bun.peek()函数也实现了惊人的90倍速度提升,而使用expect(…).toEqual比较Map实例现在快了100倍,这对于广泛依赖这些功能的应用程序来说,是一大益处。

Bun 1.0.19引入了更好的错误处理,特别是对于使用await在async函数外部这类常见错误。这次更新提供了更有信息量的错误消息,帮助开发者调试并提高代码质量。此版本还解决了bun:test中模块模拟的问题,通过直接使用模块指定符使其更直观。

新版本记录了安装后脚本的执行速度,帮助开发者在包安装期间识别性能瓶颈。此外,bun install –verbose现在将安装后脚本的输出实时流式传输,提供实时反馈,增强了安装包过程的透明度。

Bun 1.0.19修复了一系列问题,包括与–frozen-lockfile标志相关的问题、TypeScript解析器的边缘案例以及与环境变量相关的回归。此更新还带来了SQLite版本的升级(至v3.44.2),确保内嵌的SQLite客户端保持最新和安全。