December 12, 2025
构建 HTML 工具的实用模式
构建 HTML 工具的实用模式 — 在许多场景中,你并不需要完整的前端框架来构建实用的小工具;只用一个包含 HTML、JavaScript 和 CSS 的单文件就能搞定。Simon 通过用 LLM 快速迭代,已经做出了很多这类工具,这里他分享了自己的流程和实践经验,非常适合想用“纯前端”+ AI 搭建实用小工具的人。
Deno 2.6 发布
Deno 2.6 发布 — 这个流行的 JavaScript/TypeScript 运行时带来了多项升级:新增类似 npx 的 dx 工具,可以直接运行来自 npm 和 JSR 的二进制;新增 deno audit 工具用于扫描依赖漏洞;提供更细粒度的权限控制;并实现了源阶段导入(source phase imports) 等新能力。
简讯
- ⚠️ 又有两个与 React Server Components 相关的漏洞 在昨天被披露,它们与上周的 React2Shell 事件是不同的问题。
- 🔒 GitHub 更新了 npm 令牌策略:本周所有“经典” npm token 都已被撤销,现在可以通过新的流程获取 2 小时会话令牌或精细权限的访问令牌。
- 🕒 Chrome 144 Beta 已发布,支持用于处理日期和时间的 Temporal API。
- 微软发布了 VS Code 的 JavaScript/TypeScript Modernizer 预览版,它可以分析项目并给出语法和依赖升级建议。
- Oxlint 在 alpha 版本中引入了“类型感知” lint 能力。
发布
- Node.js v24.12.0 (LTS) – 第一版将“类型剥离”(type stripping)标记为稳定的 Node.js LTS 版本。
- @platformatic/python-node v2.0 – 让 Python ASGI 应用可以在 Node.js 进程中运行,现在支持 HTTP 响应流和双向 WebSocket。
- Bun v1.3.4 – 支持
URLPattern,测试运行器中新增可控/假定时器,console.log也像 Node 一样支持%j占位符。 - React v19.2.3、v19.1.4 和 v19.0.3。
📖 文章和视频
西雅图时报如何防御 npm 供应链攻击 — 详细介绍《西雅图时报》如何采用 pnpm 作为 npm 的替代,以获得更强的客户端安全控制。
让复杂 Web 应用更快的提案 — 来自微软的一份早期提案,希望通过新的 Delayed Message Timing API,缓解多个并行上下文(如 iframe、线程、多窗口等)带来的性能问题,目前正在征集反馈。
CERN 数据引擎背后:更快写入与即时洞察 — 介绍 CERN 如何使用 TimescaleDB 处理大规模时序数据工作负载,在写入、压缩和实时分析方面获得更好表现。
用 JavaScript 构建一个迷你 2D 物理引擎 — 一篇很有“老派博客味道”的文章,从零开始用 JS 写一个小型物理引擎,然后将源码“高尔夫”压缩到 2KB,并在主页上提供了示例。
📄 Canvas 上非阻塞、跨浏览器的图片渲染 – 展示如何在复杂图片场景下提升 UI 响应性。
📄 Prelude of the Chambered 重制:用 TypeScript 改写一款经典游戏 – 将 Minecraft 作者在一次 Ludum Dare 比赛中写的 Java 游戏移植到 TypeScript。
📄 Angular 小贴士 – 一个聚焦于大型 Angular 应用最佳实践的文档站。
🛠 代码和工具
开源的 Remix Store — Remix Store 是 Remix 项目的官方周边商店,其代码库展示了 Remix 核心团队如何结合 Remix 和 Hydrogen 构建实际应用的方式。即使你不是 Remix 用户,也可以从中学到很多模式,例如这个很酷的“故障风”404 页面,可以移植到别的项目中。
5.0:用自然语言展示相对时间 — 这是一个 Web Component,只要给它一个标准格式的日期时间,它就会渲染成诸如“2 days ago”这样的相对时间。GitHub 在所有仓库和代码视图中都在使用它。
还在手写测试吗? — 了解为什么 Dropbox、Notion 和 Lattice 等团队依赖 Meticulous 来运行 E2E UI 测试。
ts-exec:使用 SWC 在 Node 中执行 TypeScript — 由 Adonis 作者推出的另一种运行 TS 的方式。相比 Node 22.18+ 自带的类型剥离,ts-exec 还支持 JSX 和装饰器,并且相对 ts-node、tsx 有一些优势。
Toastflow:Vue 3 的 Toast 通知库 — 附带一个非常棒的在线 playground,可以直接在浏览器里玩转各种 toast 样式。Toastflow 在设计上是“框架无关”的,目前提供了 Vue 3 渲染器。GitHub 仓库在此。
Devalue:当 JSON.stringify 办不到时,交给它 — 出自 Svelte 项目的一个库,功能类似 JSON.stringify,但可以处理循环引用、重复引用、正则、Map/Set,甚至自定义类型。可在这里在线体验。
iceberg-js:Apache Iceberg 的 JavaScript 客户端 — 一个极简、供应商无关的 Apache Iceberg REST Catalog API JS 客户端,可运行在大多数运行时和环境中。
- Inertia 2.3 – 让你用传统服务端路由和控制器构建单页 React / Vue / Svelte 应用,适合与 Django、Rails、Laravel 等后端框架搭配。
- OpenPGP.js 6.3 – JavaScript 中的 OpenPGP 实现。
- 🗓️ React Datepicker 9.0 – 老牌 React 日期选择组件。
- 🎸 SVGuitar 2.5 – 用 SVG 渲染吉他和弦图表。
- pnpm 10.25 – 快速、省空间的包管理器。
- js-tokens 10.0 – 迷你的 JavaScript 源码 tokenizer。
📰 分类广告
- Trigger.dev 负责队列、重试和长任务,让你可以用 TypeScript 构建生产级 agent 和工作流。
- Aiven 新的开发者层 PostgreSQL 提供 5 美元档 Postgres,避免为大量空闲实例支付过高费用。
📢 生态系统中的其他地方
- 📺 今年早些时候,Dimitri Mitropoulos 曾用 TypeScript 的类型系统“跑 Doom”而惊艳众人(相关文章),这次他带来了 TypeSlayer 的视频演示——一个用于诊断和修复 TypeScript 性能问题的可视化工具,目前还未公开,但 3D 可视化效果非常炫。
- 想了解 2025 年 CSS 的最新进展,可以查看 Chrome 团队的 CSS Wrapped 2025。
- GitHub 分享了其在 GitHub Actions 平台上的改进,以及 2026 年将推出的新能力。
- 🗳️ 来自 Google Chrome 团队的 Rick Viscomi 发起了一个长期投票,邀请你为想要的 Web 特性投票。这与 Interop 2025 的投票不同,将会长期累积社区意愿。
- 🤖 OpenAI 发布了 GPT 5.2 模型。