本周主线是稳定性修复与跨语言迁移并行:Node.js 修复三处会中断进程的缺陷,覆盖对象模式流传 undefined 数据块、异常快照文件与含 null 键的 Map/Set 比较;随后 26.9.0 发布,带来 VFS 与同步 Blob 能力。GitHub 则将 Copilot 运行时从 Node 移植到 Rust,Safari 27 重写模块加载器。
🟢 Node.js 官方开发进展
🔧 Node.js 运行时
🔧 Node.js 运行时
🐛 修复三处会中断进程的缺陷
修复多处直接中断进程的缺陷:对象模式流传 undefined 数据块时异步迭代抛出未捕获 TypeError,--snapshot-blob 遇空、非法或截断快照时断言崩溃,assert.deepStrictEqual 比较含 null 键的 Map/Set 时抛 TypeError。升级后这些场景分别恢复为正常迭代、清晰报错与预期 AssertionError。
🆕 26.9.0 发布并新增 VFS 与 fs 同步 Blob 能力
Node.js 26.9.0 发布,新增 --vfs-mount 与 --vfs-load 启动参数,可直接从目录或 ZIP 归档运行应用;fs.openAsBlobSync() 对真实文件路径同步返回文件支持的 Blob,无需异步等待。需要打包分发应用或同步读取 Blob 的项目升级即可使用,VFS 仍属实验特性。
⚡ WebStream/Transform 热路径性能优化
把每流状态记录从 proto :null 字面量改为类实例,避免 V8 将对象降级为字典模式,加快流构造与逐块字段访问;背压下停放的 Transform 写不再分配逐块 Promise,省去一次微任务跳转。频繁创建短生命周期流或高吞吐转换流的应用可直接受益,无需改动代码。 🆕 npm token create 支持仅暂存发布的细粒度令牌 npm token create 的 packages-and-scopes-permission 新增 read-write-stage-only 取值,可创建仅限暂存发布的细粒度访问令牌,与网页端行为对齐;同时在使用可直接发布的 read-write 权限时会输出弃用警告,引导改用新值。现有命令用法不受影响,仅创建发布令牌的用户建议改用新权限值。 GitHub 的 Copilot 运行时已迁移到 Rust,以 napi-rs 垫片的形式分模块移植,同时保持每日发布。启动时间和内存占用是这次迁移的动因,但对移植者而言,真正的价值在于他们遇到的各类回归问题,涉及数字类型、|| 语义以及阻塞事件循环。 TypeScript 的 DOM 类型只包含已在多个浏览器引擎中发布的 API,因此诸如元素作用域的 startViewTransition 和 fetchLater 之类的内容会报错。modern-web-types 是一个可直接替换 lib.dom 的库,补充了在任一单一浏览器引擎中已发布但缺失的接口和成员。 某个端点对数百万行数据运行分析查询,导致所有人的延迟都出现尖峰。TimescaleDB 扩展了 Postgres,让这类查询在规模化场景下也能在毫秒级返回。超表、压缩、连续聚合。注册即可获得 1000 美元额度。 Master.dev 的讲师来自 Anthropic、OpenAI、Netflix、Google 和 Stripe。通过课程、工作坊和 AI 学习路径向他们学习。新会员可享受年度会员立减 100 美元优惠。 一个 Node API/CLI,可将 JSON 图表渲染为 PNG 或 HTML。与 Mermaid 或 D2 不同,它没有自动布局引擎,因此由你(或你的 LLM!)来控制各元素的位置,而连接路由、图标和样式则由它代为处理。 一个零依赖的 memcached 客户端,基于现代 meta 协议构建,在单一连接上实现流水线处理。宣称速度约为同类方案的 3 倍。 一次动手实践式的 StyleX 之旅,介绍 Meta 的 StyleX 如何在构建时将 JavaScript 样式对象转换为纯原子 CSS,以及它为何尤其适合编码智能体。 一个快速、零配置的 Rust 二进制工具,可发现 JS/TS 项目中的死代码、重复代码、循环依赖和复杂度热点。它也被定位为 AI 智能体编码循环的确定性检查工具。GitHub 仓库。 这是一个相当重要的次要版本,带来了一些新东西: 这个纯 JS 的 DOM 实现获得了更快的 DOM 构建、变更、getComputedStyle() 和事件派发,同时内存占用更低。其中很大一部分来自 Scott 在 Codex 辅助下提交的 PR,Domenic 称赞这些 PR 经过了细致整理。 这是一个重要的次要版本,使视图过渡和 Fragment Refs 转为稳定,新增对 Trusted Types 的支持,等等。我们在上周的 React Status 中做了更深入的介绍。 React DevTools 8.0 彻底删除了 Timeline 性能分析标签页,迫使 React 性能分析转向浏览器的 Performance 面板。与此同时,Suspense 标签页现在默认开启,因此你可以直接看到究竟是什么导致某个组件挂起,无需先切换任何设置。矛盾显而易见:一个备受喜爱的性能分析界面在异步渲染调试变得更复杂之际消失,开发者必须重新学习该去哪里查看。该版本还在浏览器 Elements 面板内新增了 React Element 窗格、可导航的组件搜索、父级堆栈工具、乐观键显示以及自定义主机/端口连接。本篇汇总涵盖了每一项头条变更及其背后的理由。 新增 .validate(),这是一种布尔检查,跳过错误构建,在使用编译后的 schema 处理无效输入时,速度比 .safeParse().success 快最多 35 倍。 将 Node.js v26 运行时嵌入 JVM,实现与 Java 的完全互操作。 这个快速、合规的 XML 解析器现在仅支持 ESM。 一个纯 JavaScript 实现的 Nintendo 64 模拟器。 Safari 27 于昨日发布(与 macOS/iOS 27 同步),带来了我们上周报道过的模块加载器重写,因此顶层 await 现在可在所有主流浏览器中可靠工作。 TC39 两周后将在东京召开会议。以下是议程,包含三个迭代器辅助方法后续项(join、includes 和 chunking)均有望进入 Stage 4,以及更多内容。 🔒 从本周四开始,OpenJS 基金会的 CVE 团队将休假至 10 月 6 日,原因是 AI 生成报告激增所导致的倦怠。正在被积极利用的问题仍会得到响应。 🔒 npm 现对成功使用恢复码登录的账户施加为期 72 小时的临时“安全冻结”。 这款包管理器现在可以在同一个工作区中同时管理 Rust crate 和 Python 包,以及 npm 包。 测试现在可以声明具名锁,使共享同一资源的测试永不并发运行。 两者都包含 Undici 的安全版本更新,以修复大量漏洞。 React Router 8 删除了 react-router-dom,这个多年来几乎每个 React 应用都从中导入的包。这并非孤立的中断性变更:v8.0.0 还将 future 标志翻转为默认行为,移除已弃用的 meta 字段,并通过 RSC 入口变更、Web Streams 服务器入口和不稳定的路由匹配推动升级——这些全部记录在 GitHub 分页使其几乎无法检索的说明中。发布日志逐一梳理了从 v7.0.0 到 v8.4.0 的每个版本,映射每一项重大变更和值得注意的修复,让升级者能在一个地方追溯完整的破坏性变更路径。 往期精选 阅读原文 扫码关注「右耳朵猫AI」📦 npm 包管理器
🔥 头条
GitHub 为何(以及如何)将 Copilot 运行时从 Node 移植到 Rust
Modern Web Types:为更新的 Web API 提供 TypeScript 支持
📖 文章
那个 p99 尖峰,源于一条缓慢的分析查询
在 AI 时代保持敏锐
Eraser Diagrams:代码即图表,去掉布局引擎
@platformatic/memcached:更快的 memcached 客户端
深入剖析 StyleX
Fallow:面向 TypeScript 和 JavaScript 的代码库智能工具
🛠 工具
Node.js 26.9.0(Current)发布
jsdom 30.1:一个“感受 AGI”的版本
React 19.3 发布
React DevTools 8.0
Zod 4.6
Javet 6.0
parse-xml 5.0
n64js 1.0
📝 简讯
Safari 27 于昨日发布(与 macOS/iOS 27 同步)
TC39 两周后将在东京召开会议,以下是议程……
🔒 从本周四开始,OpenJS 基金会的……
🔒 npm 现对账户施加 72 小时临时“安全冻结”
📦 版本
pnpm 12.4
Playwright 1.63
Node.js v26.8.2(Current)
React Router 8.4