Windows版Bun将于本月发布,Zig编写的JavaScript运行时
具体到功能改进上,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 的受众和应用范围预计将会进一步扩大。
END
这里有最新开源资讯、软件更新、技术干货等内容
微信扫码关注该文公众号作者