React圈TanStack停用RSC、MobX 7.0发布;JavaScript圈htmx 4.0、TypeScript 7.0发布;Node.js圈npm发布即扫毒、scriptc转原生编译器。
⚛️ React
TanStack 为何在自家网站停用 RSC
TanStack.com 曾是被引用最多的 React Server Components(RSC)成功案例之一——但该团队此后已停用它。这次转变确实带来了实际收益:将 Markdown 和语法高亮栈迁移到服务端,减少了浏览器端 JavaScript 的传输量,加快了网站速度。但成本随时间逐渐显现:一条本应简单的内容管道变成了仅限服务端的 JSX 文件、Flight payload 和路由复杂度,难以解释和维护。这篇文章剖析了推动这一逆转的原因,以及选择更简单管道背后的权衡。
在 Next.js 中试验 RSC 以提升性能与用户体验
当服务器紧挨着数据库时,异步 Server Components 可以在一次往返中完成数据获取和内容渲染——无需下载客户端代码、无需加载动画、也无需第二次请求。然而,一旦某个功能需要交互,开发者习惯性地把一切都交给客户端,让流式渲染和 Suspense 的优势白白闲置。这篇文章基于 Next.js 16.3 Instant Navigations 预览版构建了一个小型社交应用,测试 Server Component 和 Server Function 模型能延伸到多远。它揭示了流式 feed 的模式、服务端/客户端组合的决策,以及决定边界在哪才值得的性能与用户体验权衡。
OverflowGuard:能感知内容何时放不下的组件
一个 2KB 的组件,能检测工具栏或导航内容何时不再适配容器,让你无需魔法断点即可折叠为图标或汉堡菜单。
Microcharts:适合 React 的词级微型图表
一个图表现在可以只有 1,375 字节的 SVG,还能嵌入句子中。大多数仪表盘强迫读者离开正文去解读一个数字;而这款库四个集合中的 106 个词级微型图表足够轻量,可以内联渲染在报告、KPI 卡片和发布说明中。这篇文章介绍了目录中的图表类型、传数组的设置方式,以及类型化图表围栏如何让编辑和 AI 代理都能在不猜谜的情况下生成正确的图表。
MobX 7.0 发布
在期待已久的清理性发布中,MobX 7 将打包体积削减至 gzip 后 13.96 KiB(此前为 17.02 KiB),经 tree-shaking 后更是仅 10.32 KiB。在多年背负旧版 React 类组件的弃用兼容路径之后,这个状态管理库终于强制使用现代运行时和装饰器模型,但它现在要求 React 18+,将绑定拆分到 mobx-react-lite 和 mobx-react 之间,并删除了一批已废弃的 API。发布说明详细列出了哪些内容被移除、谁需要哪个 React 包,以及你的应用能瘦身多少。
Mantine 9.5 发布
Mantine 抛弃了 ESLint 和 Prettier,改用基于 Rust 的 oxc 工具链,让整个代码库的 lint 和格式化几乎瞬时完成。ESLint 和 Prettier 多年来一直是 JavaScript 的标准,但它们的 Node.js 运行时在大型组件库上会变慢,每次 lint 运行和格式化都会拖慢反馈循环。本次发布涵盖 oxlint/oxfmt 迁移、可复用的 oxc-config-mantine 包,以及 DatePicker 原生月份/年份选择器、双向 Timeline 布局等生活质量改进。
React Ace 15.0 发布
VisionCamera 5.2 发布
VisionCamera 5.2 为 SkiaCamera(React Native 的 GPU 加速渲染管线)带来了完整的手动控制——变焦、曝光和 torchMode。此前,使用 Skia 渲染的开发者不得不放弃精细的相机控制,或者与一个偏向 4K 的分辨率协商器作斗争,在不适合的设备上浪费处理能力和电量。本次发布新增了变焦、曝光和手电筒控制、targetResolution 属性、用于 GPU 缩放器的 stretch ScaleMode,并修复了 4K 偏差,让高性能相机应用既更清晰又更省资源。
react-router-hono-server 3.0 发布
Virtua 0.50 发布
Virtua 提供了一个仅约 3kB 的虚拟列表——比一张典型图片还小——却能零配置地在五个框架(React、Vue、Solid、Svelte、Angular)中运行。大多数虚拟化库要么被框架锁定,要么需要繁琐配置,因此 Virtua 将自己定位为对虚拟化本身的重新思考。这篇文章介绍了 VList(可作为可滚动 div 的直接替代品)、用于复杂布局的 Virtualizer,以及如何在几分钟内上手。
react-x11 1.2 发布
React 现在可以通过 socket 直接渲染到 X11 服务器——底层没有 DOM、没有 HTML、没有浏览器引擎,当然也不是伪装成 Electron。Linux 上的桌面 GUI 编程传统上意味着为了原生工具包而放弃 React 的组件模型,或者为浏览器付出 Electron 的内存和打包体积代价。这篇文章剖析了 react-x11 如何用纯 JavaScript 把 React 的协调过程变成 X11 协议绘图请求,以及为什么重绘一个全屏 4K 窗口不比绘制一个微型窗口更昂贵。
🟨 JavaScript
Medium 如何构建其新的“目录”功能
一个第三方 Chrome 扩展太受欢迎,以至于 Medium 把它当作原生目录功能的设计蓝图。但简单克隆扩展的 DOM 注入技巧并不是一个产品——团队必须设计在编辑器内大规模生成、更新和呈现标题的方式。这篇文章追溯了从逆向工程该扩展到发布该功能的历程,涵盖了一路上的工程和设计权衡。
Bruno 4.0:一款开源的 HTTP API 客户端应用
Bruno 4.0 完全拒绝云同步——API 集合以纯文本文件的形式存放在你的文件系统中,用 Git 做版本管理,而不是放在厂商的服务器上。Postman 及其同类工具把云同步当作默认方式,但这种模式迫使团队把集合和工作流交给一个专有平台,用隐私换取便利。这篇文章介绍了 Bruno 的离线优先 Bru 格式、基于 Git 的团队协作,以及其开源核心加付费层级如何维持项目的可持续性。
tslog 5:面向 Node、Deno、Bun 和浏览器的零依赖日志库
tslog v5 作为一个零依赖日志库发布,可在六个运行时上运行——Node、Deno、Bun、浏览器、Workers 和 React Native——不会向你的打包文件里拖入任何其他东西。这次升级是一次有意的破坏性重构:仅 ESM、字段优先的 JSON,以及取代 overwrite.* 的中间件,因此 4.x 用户被告知 4.11.0 是一个安全的版本,大部分性能优化已反向移植。这篇文章介绍了 v5 的亮点——可观测性就绪的结构化日志、通过 OTel-GenAI 预设实现代理/LLM 关联、敏感信息脱敏,以及可 tree-shake 的子路径。
😄 有趣的是,htmx 4.0 竟把自己定位为“the…
上周 TC39 会议上,Await Dictionary 提案
对独立对象属性使用await会让你的异步请求一个接一个地执行——这是瀑布效应,不是并行。Promise.all 解决了速度问题,但结果按位置而非名称来键控,因此重新排序后的数组会静默地把每个响应交给错误的变量;而手动变通方案会污染作用域,并可能引发未处理的 rejection,从而崩溃进程。这个 TC39 提案 Await Dictionary 带来了 Promise.allKeyed 和 Promise.allSettledKeyed,可以并发运行请求,并按属性名返回键控结果。
Ryan Dahl 表示 deno compile 很快将支持…
deno compile即将把 V8 换成 QuickJS,大幅缩小输出二进制体积——每个可执行文件大约节省 30MB 磁盘空间。批评者立刻质疑,较慢的执行速度和缩减的功能完整性是否值得这些节省;而另一些人则惊叹于这一变化所暗示的新 JavaScript VM 抽象层。这条讨论剖析了其中的权衡、Deno 的 VM 抽象如何工作,以及哪些使用场景真正受益于更精简的二进制文件。
Node.js 的新 API 文档网站预览版上线
Node.js 从零重建了 API 文档网站,但内容仍然是驱动现有页面的同一份 Markdown——这次改造全部围绕导航、布局和可读性。长期以来,查找和理解一个 API 一直是痛点;随着迁移进入最后阶段,Node.js 把默认切换押注在社区反馈上。beta.docs.nodejs.org 上的预览版添加了旧文档从未有过的功能:阅读时间、离线和无 JavaScript 渲染,以及可复用的 doc-kit 生成器——这篇文章详细介绍了新内容,以及如何在正式发布前报告问题。
Oxlint 的类型感知 lint 现已稳定
Oxlint 的类型感知 lint 现已覆盖 typescript-eslint 61 条类型感知规则中的 59 条。类型感知 lint 历来要求接入每个包脚本或 CI 命令,而单独的 type-check 步骤又重复了同样的 TypeScript 分析。tsgolint v7 把两者合并到一个配置中,共享同一个 TypeScript program,让 lint 和类型检查一起运行,大幅减少配置成本。
pnpm 迎来密集发布
pnpm 现在可以独自为整个 workspace 进行版本管理和发布,无需单独的发布工具。多包发布协调长期迫使 monorepo 团队外挂 changesets 或手工处理版本号递增;四次快速连发的发布(11.11–11.14)通过变更意图记录、按包预发布通道和已提交的发布台账减轻了这一负担,同时实现了 30% 的峰值内存降低和一个路径遍历漏洞修复。这篇文章介绍了新的 change、version 和 lane 命令、端到端的 doctor、注册表访问与团队管理,以及一个 peer 依赖死锁的解决。
React 19.2.8 发布
Ember 7.1 发布
早在 2018 年 RFC #389 中提出的 {{element}} helper 终于在 Ember 7.1 中随核心正式发布——此前八年它一直以第三方 addon 的形式存在。动态标签渲染迫使开发者写冗长的 if/else 链,根据每个数据值在 div 和 span 之间选择;多年来,开发者不得不安装参考实现 addon 来绕开这一缺失。这篇文章详细介绍了九个新的内置 helper({{element}}、{{and}}、{{or}}、比较运算符)、GJS 开发体验改进,以及减少弃用 npm 警告的推动。
Nuxt 4.5.1 和 3.21.10 发布
大多数 Nuxt 应用都能避开这个安全补丁最坏的情况——完全的服务端远程代码执行——因为该 RCE 向量需要 vue.runtimeCompiler,而它默认是关闭的。但使用 server islands 和动态组件解析的应用,可能让 island props 在 Nitro 进程内变成任意代码执行;第二个相关漏洞甚至不需要那个标志,就能通过实例化任意组件影响更多配置。Nuxt 4.5.1 和 3.21.10 同时修复了这两个漏洞,外加一个关键的 @nuxt/devtools 3.3.1 问题;文章列出了哪些配置受影响,并给出了单行升级命令。
ESLint 10.8 发布
即使是一次常规的 minor 版本发布,也会改变 ESLint 规则在边界情况下的行为——v10.8.0 带来了新特性和修复,消除边缘场景中不正确或意外的 lint 结果。把 lint 当作 CI 门槛的团队依赖每次更新不会引入误报或静默改变判定,然而每条规则的调整都带有这种风险。发布说明介绍了更新的规则、修复的 bug,以及让你的 lint 检查保持准确的行为变化。
Slick 2.0 发布
拥有 28.6k star 的 jQuery 轮播插件 Slick 发布了自 1.x 以来的首个大版本——v2.0.0,这是一次破坏性变更。jQuery 4 移除了 Slick 1.x 仍然依赖的已弃用 API,此次更新还放弃了对早已过时的 CSS 和字体支持,让每个现有集成都面临升级抉择。这次发布介绍了 v1.8.1 到 v2.0.0 之间的变化、为什么 jQuery 4 兼容性迫使主版本升级,以及你需要做哪些调整才能跟上时代。
isomorphic-git 1.40 发布
Git 现在可以完全在浏览器中运行——clone、commit、推送分支,甚至 PGP 签名,且零服务端配置。传统 git 依赖原生二进制,这从根本上把纯浏览器应用、WebWorker 和 ServiceWorker 挡在了版本控制门外。isomorphic-git 1.40 提供了纯 JavaScript 实现,与规范 git 保持 100% 的磁盘级互操作,并提供了可 tree-shake 的 API,让打包器只输出你实际用到的函数。
Satori 0.29 发布
Open Graph 图片现在可以仅用 JSX 生成——Satori 在运行时把 HTML 和 CSS 渲染成 SVG,无需设计工具。复刻浏览器的布局引擎是最难的部分:Satori 必须处理字体加载、排版和布局计算,同时只接受纯函数式、无状态的组件,显式不支持 useState 等 React hooks。这篇指南介绍了基本用法、去除 React 依赖的实验性 JSX 运行时,以及如何在 Next.js 中生成 OG 图片和社交卡片。
dompdf.js 2.0 发布
Dompdf.js 2.0 在浏览器内放入了一个 Rust/WASM 引擎,客户端即可生成带可选中文本的矢量 PDF——无需服务器,也无需 jsPDF 依赖。Canvas 截图导出在分页繁多的长文档上会卡顿,且产生不可选中的文本;而这种架构把渲染卸载到 Web Worker,让 UI 保持响应。这篇文章涵盖了 Rust/WASM 管线、迁移注意事项,以及 Unicode 自定义字体、页眉页脚和 PDF 加密等稳定特性。
Verdaccio 6.9 发布
js1024 竞赛
整个 JavaScript 和 GLSL 程序被压缩到只有 1,024 字节——比一条推文还小。要在这样的字节预算内做出一个真正酷炫的 demo,需要极致的压缩和 minification 技巧;而获胜取决于能否打动为每个参赛作品打分的同行。这篇文章介绍了 js1024 竞赛规则、时间线,以及让 1 KiB 魔法成为可能的压缩器和打包器工具库。
对其项目的顶级贡献者排名
开源贡献者排名揭示出谁在真正驱动 JavaScript 生态——这是大多数团队从未见过的图景。由于需要追踪数千个项目,组织在把工程栈押注在开源项目上之前,很难判断哪些贡献者和项目真正可靠。LFX Insights 提供了数据驱动的排名和分析,让开发者及其团队能够对依赖的开源项目做出更明智的决策。
我是如何不再用完 Token 的
即使在他以为实际上没有上限的 Claude Enterprise 计划上,一位工程师还是在一个会话中途撞上了组织月度支出上限——而且几位队友几乎在同一时间撞上了同一堵墙。管理员临时增加 token 配额赢得了喘息空间,但看着用量计上的消耗速率,他明白额外的 token 撑不到月底。这篇文章分享了他使用的用量追踪工具和 token 削减技巧,在不牺牲质量、不拖慢工程工作的前提下大幅减少了消耗。
LLM 仍在幻觉生成包名
🟢 Node.js
几分钟内交付 Node 和 Bun 应用
npm 将在发布时对每个包进行恶意软件扫描
现在,每个 npm 包在发布时都会在变为可安装之前接受恶意软件扫描,这通常会增加约五分钟的延迟,高峰期可能超过十五分钟。供应链攻击让 npm 注册表成为首要目标,然而这种保护也带来真实的摩擦:假设即时可用的自动化会被打断,而且 npm deprecate 和 unpublish 在扫描完成前会被冻结。变更日志详细说明了发布者将面临的情况——正常发布、人工审查或阻止,外加申诉——并针对双用途包引入了一项新的元数据要求。
GitHub 如何瓦解针对 npm 和 Actions 的供应链攻击
在过去一年里,供应链攻击利用包注册表和 CI/CD 流水线,一次性把恶意软件推送到数百个开源项目——而且往往只需一轮清扫。这些攻击串联起多个弱点来窃取维护者凭据并进一步扩散,任何单一的安全能力都无法阻止它们。GitHub 的团队花了数月研究这些攻击模式,在 npm 和 GitHub Actions 上推出了针对性的缓解措施。这篇文章介绍了那些斩断最常见攻击手法的已部署变更,以及团队如何识别并应对这些攻击。
scriptc:Vercel 的新 TypeScript 转原生编译器
Vercel 的 scriptc 把普通 TypeScript 变成一个约 320KB 的原生二进制,4ms 即可启动——而 Node 打印同样的 hello world 需要约 120MB 运行时和 35ms。代价是不允许任何标注或重写,然而 npm 依赖自带的 JS 和 any 类型代码根本无法静态编译。scriptc 用一个明确的三层模型来回应:默认静态编译、为无法静态编译的部分提供约 620KB 的可选内嵌 JS 引擎,以及一份列出每个动态位置的覆盖率报告——因此任何代码都不会被静默误编译。
快速端点不应被分析工具拖垮
npm-check-updates 23.0:查找依赖的更新版本
一条命令就能找出项目中所有过时的依赖——npm-check-updates 23.0 扫描 package.json,并一眼即可分辨 major、minor 和 patch 升级。在日益增长的项目中手动追踪依赖发布很容易出错,而盲目的npm install可能静默引入破坏性的 major 版本。本次发布涵盖过滤、通配符和正则匹配、排除规则、交互模式和安全升级工作流。
jsdom 30.0:面向 Node 的纯 JS Web 标准实现
jsdom 用纯 JavaScript 把完整的 WHATWG DOM 带到了 Node.js——一次构造函数调用就能返回一个可用的 window 对象,不需要任何浏览器进程。真实世界的 Web 应用都假设自己运行在浏览器环境中,因此在 Node 中测试或抓取它们,传统上要拖入无头 Chrome 和重量级工具。这篇文章介绍了 JSDOM 构造函数 API、url、referrer 和 storageQuota 等定制选项,以及如何模拟足够多的浏览器行为来测试和抓取真实应用。
crypto-random-string 6.0:生成加密强度可靠的随机字符串
生成安全的随机字符串过去意味着接好 crypto.randomBytes 再手工拼 base64——crypto-random-string 6.0 把它打包成一个零依赖函数,同时支持 Node.js 和浏览器。真正的痛点在于字符集:hex 字符串在 URL 中存活不了,数字 PIN 应该避免 1 和 l 这类易混淆字符,而密码需要完整的 ASCII 可打印范围。从 URL 安全 token 到专为无差错读打的配对码设计的“distinguishable”字符集,v6.0 提供了八种内置类型,外加自定义字符支持。
不,我们无法让 Node.js 抵御原型污染
每一份原型污染报告都要求 Node.js 加固某一个 gadget——但每次修复都等于什么都没修,因为一个已经能写入 Object.prototype 的攻击者已经赢得了这场游戏。在 execSync、fetch 或任何库中报告的 bug 只是他们本周选的那扇出口,核心及依赖树三层深处还有无穷无尽的更多出口。这篇文章解释了为什么加固任何单一位置都是徒劳的,以及真正的修复必须从哪里开始。
在 Drizzle 中实现全文搜索,无需第二个系统
你现在可以不用在技术栈中增加第二个数据库,就能提供生产级全文搜索。团队通常要外挂一个 Elasticsearch 之类的独立搜索引擎,然后与数据同步、重复的基础设施和两套待运维的系统搏斗。ParadeDB 官方的 Drizzle 集成把 BM25 全文搜索、向量检索和聚合直接带入 Postgres,示例涵盖分面搜索、自动补全和 RAG。
Domenic Denicola 的智能体编码配置
Domenic Denicola 已经做到在火车上用手机让前沿模型修复生产 bug。但智能体编码在 Windows 上几乎不可能——智能体基于 Bash 和 Unix 工具训练,会在 PowerShell 引号问题和 UTF-8 缺口上栽跟头——而桌面和笔记本之间的无缝交接要求保留智能体会话、工作树状态和 gitignored 文件。他分享了他的配置和技巧,其中一些还不广为人知,正是这些让这个工作流成为可能。
better-sqlite3 13.0:流行的 SQLite 库迁移到 N-API
better-sqlite3 13.0 成为首个基于 N-API 运行的版本,因此一个预构建二进制现在可同时覆盖 Node.js、Electron,甚至可能还有 Bun。原生插件历来会在 Node/Electron 版本之间出问题,迫使用户重建并依赖已弃用的 prebuild-install 依赖——这是发布 SQLite 绑定长期以来的摩擦所在。本次发布涵盖了 N-API 迁移、随包直接发布预构建二进制,以及针对不支持平台的安装时编译兜底方案。
Execa 10.0:Node 中更优的进程执行
无需任何转义或引号处理即可运行任何 Node 进程——Execa 10.0 用模板字符串取代了 shell 引号地狱,并彻底消除 shell 注入。与从未为程序化使用而设计的 shell 不同,Execa 基于 child_process 构建,提供一流的管道、流式、类型化输出和真正的 Windows 支持。这篇文章介绍了基于 promise 的语法、脚本接口,以及为什么这是在 Node 中编排子进程最干净的方式。
跟随一个 HTTP 请求走过它约 200ms 的一生
最好的 Harness 获胜,而不是最好的模型。学习 Harness Engineering
Fetch 需要错误码
每一次 fetch() 网络失败——DNS 解析失败、TLS 握手失败、连接被拒、流重置——都以同一个泛化的 TypeError 拒绝,刻意丢弃了所有诊断细节。Fetch 规范把所有失败折叠成单个不透明信号,作为针对跨源探测的浏览器安全措施;然而 HTTP/2 和 HTTP/3 已经携带了具有真实应用语义的丰富错误码(RST_STREAM、RESET_STREAM、STOP_SENDING)。一项正在推进的 TC39 提案旨在暴露这些类型化的流重置;这篇文章剖析了这个缺口、这项提案,以及推进它对 JavaScript 运行时意味着什么。
Telegram Serverless:在 Telegram 的服务器上运行 Telegram Bot
Telegram 现在可以在自己的基础设施上托管你 bot 的整个后端——无需 VPS、无需容器、无需管理伸缩。传统上,运行一个 bot 意味着为了回答一个 /start 就要配置永远在线、安全且可达的服务器,然后永远守着它们。这篇文章介绍了该平台的三部分项目布局,以及一个用一条 npx tgcloud push 就能部署的可用 demo bot。
LiteParse 2:快速轻量的 PDF 文档解析
LiteParse 2 完全在本地完成高质量的空间 PDF 解析——没有专有 LLM 功能,没有云端依赖。本地解析通常在密集表格、多栏布局或扫描文档上卡壳,而把所有内容推给云服务会增加成本和数据暴露风险。这个工具用基于 PDFium 的文本提取、灵活的 OCR 系统(内置 Tesseract 或任意 HTTP 服务器),以及能在完整解析之前路由或拒绝文档的复杂度检测来回答这个问题,输出干净的 Markdown 和 JSON,可直接用于 LLM 和 RAG 流水线。
Tinbase:单个二进制实现的 Supabase 兼容后端
官方的 Supabase 本地栈是一个 12 容器的 2.3 GB Docker 安装——tinbase 用单个二进制替代了它,约两分钟即可启动,甚至能在浏览器标签页里跑。本地 Supabase 开发长期以来意味着重量级的 Docker 编排,而 PocketBase 等更轻量的替代品讲的是另一套 API,并不是 supabase-js 的即插即用替代品。这篇文章剖析了 tinbase 如何实现 PostgREST 查询语法、GoTrue 认证、Storage 和 Realtime Phoenix 协议,让未修改的官方 SDK 无需任何改动即可工作。
你的 Next.js 应用已经在做追踪了。现在让它变得有用
你的 Next.js 应用已经在为每个请求生成追踪——中间件、fetch() 调用和服务端渲染——但默认情况下它们被静默丢弃。调试一个缓慢的页面意味着从症状反向推导:本地复现、撒日志、猜测瓶颈,并祈祷生产环境表现得像你的机器一样。用 @vercel/otel 配置几行代码,就能把这些内置追踪导出到 Sentry 等任意 OpenTelemetry 后端,给你一个 span 级瀑布图,精确定位每个请求的时间花在了哪里。
Node.js 26.5.0(Current)发布
Node.js 26.5.0 没有任何值得注意的代码变更——它唯一的重磅更新是一个全新的发布密钥。随着项目迎来发布者 Stewart X Addison,未来的二进制文件将使用他的密钥(655F3B5C…)签名,因此任何通过 release-key 检查来验证 Node.js 下载的人都必须更新信任锚点。这篇发布说明解释了密钥变更,并列出了所有平台的完整下载链接。
TypeScript 7.0 发布
TypeScript 7 的编译速度最高提升 10 倍——不是靠增量优化,而是用 Go 对编译器做了一次彻底的原生重写。最初的基于 JavaScript 的编译器长期承诺“JavaScript 可以扩展”,但随着项目膨胀,类型检查和工具在大规模代码库上痛苦地变慢。这篇文章剖析了原生移植的设计、共享内存多线程、编辑器和 LSP 支持,以及那些 8x–12x 更快的完整构建在日常开发中意味着什么。
CVE-2026-48931 本不该成为 CVE
一个变成 CVE-2026-48931 的 Node.js 安全补丁修复了 HTTP/1.1 响应队列投毒问题——然后破坏了真实用户的部署,最终让报告者承认它本不该成为一个 CVE。攻击是真实的:池化的 keep-alive 连接不携带响应标识符,因此上游发来的未经请求的字节会被当作下一个请求的响应来消费。但 CWE-367 的框架要求存在恶意或被入侵的源站,而这样的源站本来就控制着它返回的每一个响应。这篇文章剖析了 freeSocketDataGuard 修复、命名和框架上的三个错误,以及安全报告者在提交 CVE 之前应该重新考虑什么。
ECMAScript 2026 有哪些新特性
ECMAScript 2026 新增了 Array.fromAsync,为异步迭代器带来了同步迭代器自 2015 年以来就享有的数组转换辅助函数。多年来,要把一个异步生成器转成数组,意味着手工编写 for-await 循环并逐个 push 元素——这是规范迭代器工具箱中一个刺眼的缺口。这篇文章介绍了 Ecma International 在 2026 年 6 月批准的新增内容,从 Array.fromAsync 开始,并配有实用的代码示例。
terminal-image 5.0:在终端中显示图片
terminal-image 5.0 可以在你的终端里直接渲染全分辨率图片——无需单独的查看器。终端从来不是为显示图片而设计的,所以真正的挑战在于弥合天差地别的能力:iTerm 和 Kitty 等图形终端获得像素级完美输出,而其他终端则退回到 ANSI 块字符。这个版本展示了单行 API 如何显示 PNG、JPEG 甚至动画 GIF,支持按百分比或行/列数缩放。
eslint-node-test:面向 Node 内置测试运行器的 ESLint 规则
Node 的内置测试运行器终于有了自己的 ESLint 插件,带来了成熟测试框架视为理所当然的同类护栏。随着团队迁移到node:test,不小心提交的.only()调用和重复的测试标题会静默地用不稳定或误导性的运行结果破坏 CI。这个插件提供了 recommended 和 unopinionated 预设,只作用于导入node:test的文件,并自动修复最常见的错误——以极简配置换来更干净、更一致的测试套件。
webpack-dev-server 6.0:官方 webpack 开发服务器
往期精选
- Web前端周刊2026W30 | React 19.2.8发布、Vue 3.6 RC、TypeScript 7 Go重写、ECMAScript 2026获批、Node.js 26.5.0
- Web前端周刊2026W29 | TypeScript 7.0 RC、Bun Rust重写、Node.js 26.5、ESLint 10.7
- Web前端周刊2026W28 | TypeScript 7.0 RC、npm v12、Node.js 26.5.0、ECMAScript 2026、React Hook Form 7.81.0
- Java周刊2026W30 | 值类型JDK28预告、SpringAI2.0发布、Metropolis项目终结
- Rust周刊2026W30 | Rust 1.97.1、Syn 3.0.0、Freya 0.4、size_of_val_raw 稳定、libs 团队 RFC
- 2026年7月编程语言排行榜|Rust 首进前十创历史
阅读原文
扫码关注「右耳朵猫AI」