文章摘要
Bun v1.3.9版本发布,支持并行或顺序运行多个脚本,新增bun:test的mock和spyOn功能,支持Symbol.dispose,改进了ESM字节码编译性能,并优化了Bun.markdown等多项功能。
文章总结
Bun v1.3.9 版本发布公告
Bun 是一个现代化的 JavaScript 运行时环境,最新版本 v1.3.9 带来了多项重要更新和性能优化。
主要更新内容:
- 脚本执行增强
- 新增
--parallel和--sequential参数,支持并行或串行运行多个 package.json 脚本 - 支持工作区过滤和前缀输出,便于区分不同脚本的输出
- HTTP/2 连接升级
- 修复了
net.Server到Http2SecureServer的连接升级问题 - 支持通过
h2Server.emit('connection', rawSocket)转发 TCP 连接
- 测试功能改进
mock()和spyOn()现在支持Symbol.dispose- 可使用
using关键字自动恢复模拟函数
- 网络代理优化
- 修复了
NO_PROXY环境变量在显式设置代理时被忽略的问题
- 性能分析工具
- 新增
--cpu-prof-interval标志,支持配置 CPU 分析器的采样间隔
- ESM 字节码编译
- 现在支持在
--compile模式下使用 ESM 格式的字节码
性能优化:
- Markdown 转 HTML 渲染速度提升 3-15%
- Bun.markdown.react() 性能提升 7-28%
- AbortSignal.abort() 无监听器时速度提升约 6%
- JavaScriptCore 引擎多项优化:
- 正则表达式 SIMD 加速
- String.prototype.startsWith 速度提升 1.42-5.76 倍
- Set/Map 的 size 属性访问速度提升 2.24-2.74 倍
- 字符串修剪(trim)操作优化
Bug修复: - 修复了 ARMv8.0 处理器上的非法指令崩溃问题 - 改进了 Node.js 兼容性 - 修复了 WebSocket 和 HTTP 相关的多个问题 - 修正了 TypeScript 类型定义中的若干问题
致谢: 感谢 10 位贡献者对本版本的支持和改进。
安装与升级:
可通过多种方式安装或升级 Bun:
curl -fsSL https://bun.sh/install | bash
npm install -g bun
bun upgrade
Bun 持续致力于提供高性能的 JavaScript 运行时环境,欢迎开发者体验新版本带来的改进。
评论总结
总结评论内容如下:
- 关于术语使用的讨论
- giorgioz询问在英语中"Parallel/Sequential"和"Parallel/Series"哪个更常用(评分:无) "Is it more common in English to use there terms Parallel and Sequential or Parallel and Series?" "I was wondering if those were two best terms two use..."
- 对工具实用性的质疑
- johnfn质疑为何需要专门的并行/顺序工具而非简单bash脚本(评分:无) "Why do I want parallel and sequential when I can just write a simple bash script?" "Is there some additional complexity I'm missing?"
- 对脚本运行抽象的建议
- spankalee认为并行/顺序是错误抽象,建议采用依赖描述方式(评分:无) "Parallel and sequential...are really the wrong abstractions for running scripts" "What you really want is a way for scripts to describe their dependencies"
- 对产品bug的关注
- rcarmo表示关注但想确认websocket bug是否已修复(评分:无) "I'm curious to check if the web socket bugs are all gone" "I had a watch on a particular one that stopped me..."
- 对公司技术选择的质疑
- dude250711质疑Anthropic为何需要Bun而非自行开发(评分:无) "Why does Anthropic even need Bun?" "Is Claude not good enough to write something far superior..."
主要观点分布: - 2条关于技术术语和工具选择 - 1条关于脚本运行抽象的建议 - 1条产品bug反馈 - 1条对公司技术策略的质疑