2026年第16周 JavaScript技术周刊
本周JS技术圈呈现务实治本趋势:Promise取消、Monorepo依赖一致性等痛点得到更体面解法;Firefox扩展生态探索、UI骨架屏自动生成、React终端框架Ink7.0发布、Bun内置无头浏览器及任务调度等更新亮点突出,生态基建持续优化。
这一周的技术圈看点不少,从浏览器扩展的挖掘到终端UI框架的迭代,再到前端运行时的新能力释放,几个方向都挺有意思。先说几句总体感受:JS生态的“基建”层正在经历一轮细水长流的优化,而一些曾经困住不少开发者的痛点——比如Promise的取消语义、Monorepo里依赖版本打架——终于有了更体面的解法。整体的节奏是“务实、治本、不玩虚的”。
安装所有 Firefox 扩展
用JavaScript去撬开Firefox的扩展生态,这事儿本身就是一场挺有意思的技术探险。作者把这个过程记录成了故事,读下来会发现扩展生态里藏着不少奇观——有些是设计上的智慧,有些则是历史遗留的“包袱”。

你无法取消 Promise(但有时可以)
严格来说,Promise本身没有“取消”这个语义。但如果你真想让它“停住”,方法倒也直白:让一个async函数去await一个永远不resolve的Promise就行了。函数会静默挂起,GC可以回收关联资源。这不算完美的取消方案,但从实际效果来看——特别是你想避免副作用继续执行时——确实够用。关键不在于API有多优雅,而在于你对控制权的理解有多通透。
解析而非验证(在不情愿的语言中)
厌倦了在多个文件里来回补丁那些防御性的if检查?这个痛点其实指向了一个更深的问题:验证是事后诸葛亮,解析才是正主。通过品牌类型和可辨识联合,你能把数据从“我不确定它是什么”变成“我确定它是什么”——这一步走完,后面的检查基本就成了多余姿势。工程上的减法,往往是从更聪明的类型定义开始的。
Boneyard:自动生成 UI 骨架屏
这个工具的思路挺实用:截取真实的UI,然后自动生成一套精准的骨架“骨骼”列表。每个矩形的位置和尺寸都和实际页面镜像对齐。支持React,开箱即用。对于那些需要兼顾加载体验和设计还原度的场景,这比手写骨架屏效率高太多了。
Syncpack:大型 JS Monorepo 依赖版本一致性工具
Monorepo大了以后,最头疼的就是依赖版本打架——同一个包,不同子项目引的版本号差一位,构建时就可能出玄学问题。Syncpack就是干这个的:扫描全仓库,发现不一致就报出来,还能自动修复、强制统一。Electron、Cloudflare、Vercel这些团队都在用。工具本身是个CLI,轻量且直击痛点。
Ink 7.0:用 React 构建 TUI 和命令行应用
Ink是驱动不少终端应用的那套框架。v7.0基于React 19.2,内部用了useEffectEvent来提升效率,还新增了一批hooks和设置项。如果你习惯用React的思维写命令行界面,这套东西会给你相当的舒适度——尤其适合那些对数结构有强需求的CLI工具。
Windows 95 Electron 桌面应用
基于v86 JavaScript + WASM模拟器,能让你在macOS、Linux和Windows上原样跑Windows 95。v5.0是一次重大更新。与其说是生产力工具,不如说是一次完整的“技术考古体验”——从界面到操作逻辑,全部复刻。对老系统和浏览器技术演进感兴趣的同学不妨一试。
Mantine 9.0
这套React组件库的更新重点在于“日历排程”——新增了一整套完整的排程组件,从视图切换再到事件拖拽覆盖,覆盖得很全。如果你正好在做排班或预约系统的UI,这个版本值得仔细看看。
wa-sqlite 1.1
SQLite的WebAssembly实现,最大的看点是支持基于JavaScript的虚拟文件系统,以及浏览器存储扩展。这意味着在浏览器里跑一个完整的SQLite数据库,存储后端不再依赖原始的内存或IndexedDB,可定制性强了不少。
gridstack.js 12.6
构建响应式、可拖拽的多列仪表盘。对需要做自定义面板或Dashboard产品的团队来说,这是为数不多既支持拖拽布局又能在响应式上稳住底线的方案。
Formula.js 4.6
JavaScript版的Excel公式函数库。如果你需要在前端做在线表格或类Excel计算引擎,这个库算是目前覆盖面最全的选择之一。
Lexical 0.43
Facebook开源的文本编辑器框架,更新节奏稳健。如果你在做富文本编辑器但又不想从头造轮子,Lexical的扩展架构比起ProseMirror或Slate,思路上有不少差异化的优点。
Google 将惩罚“劫持”返回按钮的网站
从6月起,Google将正式在搜索排名中惩罚那些劫持浏览器返回按钮的站点。本质上是针对干扰用户导航行为的强制页面跳转——尤其是一些广告页或中间页的“夹断”操作。从用户体验角度说,这个政策挺痛快。
TanStack Start 实验性支持 React Server Components
TanStack Start迈出了支持RSC的一步。虽然目前仍是实验性状态,但方向很清楚:当RSC逐步成为React生态的主流范式,所有全栈框架都必须考虑如何与它共存、协调,TanStack也不例外。
dotJS 今年9月重返巴黎
dotJS将于9月18日在巴黎举行,CFP窗口还剩两周开放。对JS社区来说,dotJS的场子一直有技术浓度和选题品味,值得关注。
Bun v1.3.12
这个JS运行时的更新亮点有两块:内置了原生无头浏览器自动化能力(省掉了Puppeteer或Playwright的依赖),以及通过Bun.cron提供了进程内的任务调度器。从工具链迭代角度看,Bun越来越像“把前端后端的活儿一把包了”的整合型运行时。
React 19.2.5
版本号更新,修复层面居多。
React Native 0.85
新版动画后端和DevTools的改进,是这次的主要变化。动画性能的底层调优,对跨端体验的质感影响不小。
pnpm v11.0 RC 0
pnpm进入大版本候选阶段。如果你在Monorepo里已经用上了pnpm,v11的变化值得提前翻翻changelog,尤其是性能和解析策略方面的调整。
