导读 | Bun 是一个集打包工具、转译器和包管理器于一体的 JavaScript 运行时,由 Jarred Sumner 发布了 1.0.7 版本。本次更新实现了对 Node.js 运行时的多项兼容性改进,并修复了近 60 个 bug。 |
根据发布说明,本版本对 “bun install” 命令进行了优化,支持可选的 peerDependencies,可以避免安装不必要的依赖包。修复了一个边缘案例 Bug,之前在匹配语义化版本范围时,有时会选择比较老的包版本。另外还修复了一些确定性相关问题,以提高在 Linux 系统下生成的 bun.lockb 文件的一致性。
在 Node.js 兼容性方面,本版本修复了 child_process 的 IPC 通信可靠性问题,改善了 With Next.js 的兼容性。修复了 net 模块 socket 没有正确发送 end 事件的 Bug。解决了 napi 模块中的内存泄漏问题。修复了 stream 模块中的崩溃问题。修改了 http 服务器的 address () 方法在 Unix Socket 的返回值。以及修复了一些 Worker Threads、Buffer、DNS 模块的 Bug。
除此之外,还修复了 Bun 运行时本身的一些问题。例如 Docker 容器中错误抛出端口占用的 Bug,请求 url 端口错误的边缘案例问题,Response 对象缺少 statusText 属性等。WebSocket 客户端请求头 Host 字段遗漏端口的问题也已解决。
总体来说,Bun 1.0.7 对该项目的 Node.js 兼容性做出了长足的改进,使其可以运行更多依赖 Node.js API 的程序。同时也修复了许多影响稳定性的 Bug。这些改进使 Bun 在保持极快的运行速度的同时,向通用的 JavaScript 运行时又迈进了一步。
除修复 Bug 外,Bun 的团队也在积极准备定期提供 Windows 版本的构建。他们将会切换到使用 Cmake 和 Ninja 等现代化的构建工具。并启用 JavaScriptCore 的 Debug 版本以帮助发现 Bug。未来 Bun 也会从 LLVM 16 升级到 LLVM 17。
本次更新表明,Bun 的开发者们仍然致力于完善该项目,使其成为一个易于使用和高性能的 JavaScript 平台。随着项目继续成熟,我们有理由期待 Bun 会吸引到更多用户,成为 Web 开发者的不错选择。当然项目当前还有许多不足之处需要改进,我们也期待着后续版本带来的更多惊喜。