Bun 1.0.26 版本发布:Windows 版即将在 2 月 15 日发布

2024年 2月 4日 76.8k 0

近日,Bun的开发者Jarred Sumner宣布了JavaScript运行时环境Bun的最新版本——1.0.26的发布。Bun不仅是一个运行时环境,还集成了打包器、转译器和包管理器的功能。在这个新版本中,Bun带来了一系列的改进和修复,包括解决了30个bug,增加了对bun:sqlite中多语句查询的支持,提升了bun --watch在长时间运行中的可靠性,以及对Bun.FileSystemRouter的路由数量进行了扩展。

具体到功能改进上,Bun 1.0.26版本增加了对bun:sqlite多语句查询的支持。这意味着开发者可以在单次调用db.run()时执行多个SQL语句,提高了开发效率和灵活性。此外,bun --watch命令在这个版本中得到了改进,增加了防御性的文件描述符关闭机制,以防在监视大量文件时出现资源耗尽等问题。在Linux系统中,Bun使用了close_range(2)系统调用,在重新加载进程之前关闭所有文件描述符,而在macOS上,通过使用POSIX_SPAWN_CLOEXEC_DEFAULT标志实现了类似的功能。

值得一提的是,Bun的FileSystemRouter现在支持超过64条路由。之前版本中,使用超过64条路由时会引发无法捕获的异常,这一问题已经在1.0.26版本中得到了修复。

此外,关于错误处理方面,Bun修复了error.stack有时返回undefined的问题,并且解决了error.stack CallSite lineNumber有时为负数的问题。此外,Bun还修复了Error.prepareStackTrace默认未定义的问题,使其行为与Node.js保持一致。

关于测试方面,Bun解决了expect(a).toStrictEqual(b)在比较带有删除属性的对象时的错误处理问题。之前的版本中,这可能会引发一个带有空diff的错误,而现在这一问题已经得到了正确的处理。

在网络通信方面,Bun修复了Bun.serve()中WebSocket的事件循环调度问题,保证在执行事件循环回调后总是清空微任务队列,避免内存过高增长的问题。

在对Node.js兼容性的提升上,Bun 1.0.26版本对module.path进行了修正,使其行为更加符合Node.js的规范。另外,该版本对new Response(Bun.file())偶尔在stderr中记录错误的问题也进行了修复。

值得关注的是,Bun在Windows平台的支持也在稳步推进中。虽然目前78%的测试已通过,但开发团队认为这还不足以发布Windows版本。大部分在此版本中的更改都与Windows相关,但由于尚未正式发布,因此在此次更新日志中并未涉及。

Bun的这些更新显示了它作为一个现代JavaScript工具的持续成长和完善。对于开发者而言,这意味着更高的效率和更稳定的开发体验。随着Windows版本的即将到来,Bun的受众和应用范围预计将会进一步扩大。

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论