最近把项目从 Node.js 20 升级到了 23,有几个变化挺有意思的,想和大家聊聊。
1. fetch() 默认启用
Node.js 23 不再需要 --experimental-fetch 标志了。之前用 fetch 做第三方 API 调用(比如 OAuth、Webhook)总要加 flag,现在直接能用。不过要注意全局 fetch 和 node-fetch 的行为差异。
2. Stream 管道改进
new Stream() 构造函数有了更多选项,pipeThrough 的背压处理也更智能了。我们论坛的图片缩略图生成之前偶尔会丢数据,升级后没再出现过。
3. AbortSignal.timeout() 标准化
以前需要自己封装超时逻辑,现在一行代码搞定:
这对论坛的缓存层特别有用——外部 API 超时就快速失败,不会拖慢整个请求。
4. Performance 指标更细粒度
performance.mark() 和 performance.measure() 现在支持自定义属性,做性能分析方便了很多。
大家有没有升级到 23 的?遇到过什么坑或者惊喜?