Node.js技术周刊 2026年第16周

🔥 头条

Node 默认启用 Temporal

Temporal API 旨在现代化 JavaScript 的日期/时间处理,上月达到 Stage 4。Node 之前一直在等待 V8 默认启用该特性,现在已经开始推进这一进程。这将极大地提升 Node.js 在日期和时间处理上的能力和灵活性。

📖 文章

一站式 Node 应用监控

AppSignal 是一款强大的监控工具,可以处理 Node.js 技术栈的错误、性能、日志、运行时间和主机指标。它支持自动插桩 ExpressKoaPrismaBullMQ,帮助开发人员全面监控应用的健康状况。

OWASP NPM 安全速查表

OWASP 提供了一份持续更新的 NPM 安全检查清单,最近的更新涵盖了禁用生命周期脚本、防止 typosquatting 等内容。这份检查表对于提高 Node.js 项目的安全性非常有帮助。

嵌套 Promise 的用途

James 重新审视了 2013 年关于 Promises/A+ 单子的辩论,并因遇到一个真实并发问题而改变了看法。这篇文章深入探讨了嵌套 Promise 的实际用途,虽然内容较为复杂,但非常值得一读。

让 Postgres 承担分析任务

TimescaleDB 是一个扩展了 Postgres 的时间序列数据库,它添加了超表、95% 压缩率和连续聚合功能。这些特性使得 Postgres 能够直接处理分析任务,而无需第二数据库或数据管道。免费试用 TimescaleDB 可以让你快速体验其强大功能。

POSETTE Postgres 线上大会

POSETTE: An Event for Postgres 2026 是一场免费的虚拟开发者活动,将于 6 月 16-18 日举行。大会将进行 44 场演讲,所有内容都将直播并提供回放。这是一个了解 Postgres 最新动态和最佳实践的好机会。

Promise 的“取消”之道

Promise 本身无法取消,但可以通过让 async 函数 await 一个永不 resolve 的 Promise 来中止执行。这样,函数会静默停止并被 GC 回收。这种方法为控制异步流程提供了新的思路。

Node 安全赏金计划暂停

自 2016 年以来,Node.js 项目为合格的安全漏洞报告提供赏金,资金来自 Internet Bug Bounty 项目。然而,由于失去资助,这一计划现已暂停。这对 Node.js 社区的安全保障是一个不小的打击。

tsdown 支持生成可执行文件

VoidZero 的库打包工具 tsdown 现支持使用 NodeSingle Executable Applications 功能构建独立可执行文件。这一功能使得 TypeScript 项目可以更容易地分发和部署。

分析无需独立基础设施

TimescaleDB 扩展了 Postgres,使其能够直接在实时数据上运行分析任务。这意味着你可以使用相同的连接,无需额外的数据管道或第二数据库。免费开始使用 TimescaleDB,体验无缝的分析能力。

Marked.js 18.0 快速 Markdown 解析

Marked.js 是一个为速度而生的底层 Markdown 编译器,同时支持客户端和服务端。最新版本 v18 主要进行了错误修复,确保了更高的稳定性和性能。

Memetria K/V: Redis 托管服务

Memetria K/VNode.js 应用提供 Redis OSSValkey 托管服务,支持大键追踪和详细分析。这使得 Node.js 开发者可以更轻松地管理和优化 Redis 实例。

Axios 事件隐性影响范围

你可能已经听说了 Axios 供应链攻击(如果还没有了解,请检查是否受影响)。Ahmad 反思了攻击机制及其更广泛的影响。这篇文章不仅揭示了攻击的具体细节,还提出了防范措施。

npm Workspaces 入门指南

npm Workspaces 是一个强大的工具,允许你在同一个仓库中管理多个包。通过本地包按名称互相导入,npm 可以提升和去重依赖。这篇入门指南详细介绍了如何使用 npm Workspaces,帮助你更好地组织和管理项目。

沙箱环境中的 Node.js 安全性

在开发和测试过程中,沙箱环境是保护系统安全的重要手段。本文探讨了如何在 Node.js 中设置和使用沙箱环境,确保代码在受控环境中运行,从而降低潜在风险。

总结

本周的 Node.js 技术周刊涵盖了多个重要话题,包括 Temporal API 的默认启用、AppSignal 的一站式监控解决方案、OWASPNPM 安全检查清单、TimescaleDB 的分析能力、Promise 的取消机制、Node.js 安全赏金计划的暂停、tsdown 的可执行文件支持、Marked.js 的快速解析、Memetria K/VRedis 托管服务、Axios 供应链攻击的影响、npm Workspaces 的使用指南以及 Node.js 沙箱环境的安全性。希望这些内容能帮助你更好地理解和应用 Node.js 技术,提升开发效率和安全性。

Ox 为每个 Agent 任务创建独立沙箱

Ox 为每个 Agent 任务创建独立的 沙箱,确保代码、计算和数据的隔离。这种设计允许开发者在生产环境中进行零风险测试,避免因测试代码而导致的任何潜在问题。沙箱环境不仅提高了安全性,还增强了代码的可靠性和可维护性。通过这种方式,开发者可以更放心地进行功能测试和性能评估,而不会影响现有系统的稳定性。

Node.js 3月安全更新发布

Node.js 在本月发布了多个版本的安全更新,包括 v25.8.2 (Current)、v24.14.1 (LTS)、v22.22.2 (LTS) 和 v20.20.2 (LTS),共修复了 9 个漏洞,其中 2 个被标记为高危。这些更新解决了潜在的安全风险,提升了系统的整体安全性。建议所有用户尽快升级到最新版本,以确保应用程序的安全性和稳定性。安全更新是维护系统健康的重要步骤,及时修补漏洞可以防止潜在的攻击和数据泄露。

V8 抗 HashDoS 可逆哈希设计

Node.js 团队在本周的安全更新中为 V8 引擎引入了一种新的哈希算法,旨在同时抵抗哈希洪泛攻击(HashDoS)并保持快速可逆。哈希洪泛攻击是一种常见的拒绝服务攻击手段,通过大量构造冲突的哈希值来消耗服务器资源。新的哈希算法通过优化内部结构和增加随机化机制,有效抵御了这类攻击,同时保证了哈希操作的高效性和可逆性。这一改进对于提高 Node.js 应用程序的安全性和性能具有重要意义。

Clerk M2M 令牌支持 JWT

Clerk 现已支持使用 JWT(JSON Web Token)进行机器对机器(M2M)身份验证。JWT 是一种开放标准(RFC 7519),用于在网络应用之间安全传输信息。通过使用 JWT,Clerk 可以在本地验证 M2M 令牌,而无需进行额外的网络请求。JWT 包含机器 ID、声明和过期时间等信息,确保了令牌的安全性和自包含性。这一功能简化了 M2M 身份验证流程,提高了系统的响应速度和可靠性。

400MB 内存去哪了?

一篇深入的技术文章探讨了一个 Node WebSocket k8s Pod 为何比同类 Pod 消耗更多内存,尽管 process.memoryUsage() 显示正常。作者通过详细的内存分析工具和日志记录,逐步排查了内存泄漏的原因。最终发现,问题出在一个第三方库的不当使用上,该库在某些情况下会占用大量内存。通过优化代码和选择更合适的库,作者成功解决了内存泄漏问题。这篇文章不仅提供了具体的解决方案,还分享了内存分析的最佳实践,对其他开发者处理类似问题具有重要参考价值。

JavaScript 臃肿三大根源

一篇文章分析了导致 node_modules 目录过大的三个主要原因:不必要的 ES3 兼容包、只有单一消费者的微型库、以及已有原生 API 的 ponyfill。ES3 兼容包通常是为了支持旧版浏览器,但随着现代浏览器的普及,这些包已经不再必要。微型库虽然功能单一,但如果过度依赖,会导致项目臃肿。ponyfill 是一种在不支持某些原生 API 的环境中提供兼容性的库,但在现代环境中,这些库往往可以被原生 API 替代。了解这些原因有助于开发者优化项目结构,减少不必要的依赖,提高项目的性能和可维护性。

Node.js 24.15.0 LTS 发布

Node.js 24.15.0 LTS 版本发布了,该版本从 v25 中移植了若干新特性,包括 require(esm) 和模块编译缓存功能,这些特性现在已被标记为稳定。此外,该版本还引入了 --max-heap-size 选项,允许用户设置进程的最大堆内存。这些改进不仅提升了 Node.js 的功能性和性能,还为开发者提供了更多的配置选项,帮助他们更好地管理应用程序的资源。LTS 版本的发布意味着这些特性已经经过充分的测试,可以放心地在生产环境中使用。

x-win: 检查系统窗口信息

x-win 是一个跨平台的工具,可以在 macOS、Linux 和 Windows 上获取打开窗口的位置、大小、应用图标和标题,以及其底层进程信息和内存使用情况。这个工具对于系统管理和调试非常有用,可以帮助开发者快速了解当前系统状态,诊断潜在的问题。x-win 的使用方法简单直观,支持多种输出格式,方便集成到自动化脚本中。无论是进行性能监控还是故障排查,x-win 都是一个值得尝试的工具。

Axios 供应链攻击复盘

Axios 团队最近分享了他们应对供应链攻击的详细复盘。攻击者通过恶意依赖注入了木马,导致部分用户的系统受到影响。Axios 团队迅速采取行动,定位并修复了问题,同时加强了依赖管理的安全措施。这篇复盘文章不仅详细描述了攻击的过程和应对措施,还提供了预防供应链攻击的最佳实践。对于使用 Axios 或其他开源库的开发者来说,这是一篇重要的参考资料,有助于提高系统的安全性。

web-audio-api: Node 中用 Web Audio

web-audio-api 是一个在 Node.js 中实现 Web Audio API 的库,允许开发者在服务器端使用完整的 Web Audio 功能。这个库支持在本机播放音频或渲染为文件,提供了丰富的示例和文档。web-audio-api 的出现填补了 Node.js 在音频处理领域的空白,使得开发者可以在后端进行复杂的音频操作。无论是音频处理、音乐合成还是实时音效,web-audio-api 都是一个强大的工具。

Node.js 25.9.0 Current 发布

Node.js 25.9.0 Current 版本发布了,该版本包含了一些重要的新特性。其中,--max-heap-size 选项允许用户设置进程的最大堆内存,这对于控制内存使用非常有用。此外,James Snell 的实验性“更好流 API”实现也作为实验特性落地,这一特性旨在简化流操作,提高代码的可读性和性能。这些新特性不仅扩展了 Node.js 的功能,还为开发者提供了更多的开发选项,帮助他们构建更高效的应用程序。

node-re2: RE2 正则库绑定

node-re2 是一个将 Google 的 RE2 正则表达式库绑定到 Node.js 的模块。RE2 是一个线性时间匹配的正则表达式库,免疫回溯导致的 ReDoS 攻击。node-re2 提供了几乎完整的 RegExp 替代,使得开发者可以在 Node.js 中使用更安全和高效的正则表达式。这一模块特别适用于需要处理大量文本数据的应用程序,可以显著提高性能和安全性。

Defuddle: 提取网页正文

Defuddle 是一个用于提取网页正文的工具,可以去除 HTML 中的杂乱内容,只保留主要的正文部分。这个工具非常适合用于内容抓取和数据分析,提供了在线演示,方便用户快速试用。Defuddle 的实现基于先进的自然语言处理技术,能够准确识别和提取网页中的主要内容,减少了手动清理的工作量。无论是用于新闻聚合、内容分析还是其他场景,Defuddle 都是一个高效且可靠的工具。

Knip v6: 快速清理项目冗余

Knip 是一个用于查找和移除项目中未使用文件、导出和依赖的工具。最新发布的 v6 版本采用了 oxc-parser,实现了 2-4 倍的性能提升。Knip 的使用非常简单,只需几行命令即可扫描整个项目,识别并删除冗余文件。这一工具不仅有助于减少项目体积,提高构建速度,还能提高代码的可维护性。对于大型项目或团队协作开发,Knip 是一个不可或缺的工具。

Vavite 6: Vite 全栈开发

Vavite 是一个基于 Vite 的全栈开发框架,允许开发者使用 Vite 开发后端 Node.js 代码,获得前后端统一的工具链和热重载体验。最新发布的 v6 版本带来了多项改进,包括更好的性能优化和更稳定的热重载功能。Vavite 的出现简化了全栈开发的流程,使得开发者可以更专注于业务逻辑的实现,而不必担心工具链的复杂性。无论是初学者还是有经验的开发者,Vavite 都是一个值得尝试的框架。

htmlparser2 12.0 解析器发布

htmlparser2 是一个流行的 HTML 解析器,最新发布的 12.0 版本带来了许多改进和新特性。这个解析器可以通过消费文档并调用回调函数,也可以生成 DOM 树。htmlparser2 提供了在线演示,支持 Node 和浏览器环境,方便用户快速试用。这一版本的发布不仅提升了解析器的性能和稳定性,还增加了更多的配置选项,使得开发者可以根据具体需求进行定制。无论是用于内容抓取、数据分析还是其他场景,htmlparser2 都是一个强大且灵活的工具。

TypeScript 6.0 发布

TypeScript 6.0 正式发布了,这一版本旨在为从自托管编译器过渡到 Go 驱动的原生编译器(TypeScript 7.0)铺平道路。TypeScript 6.0 引入了许多新特性和性能优化,包括更好的类型推断、更严格的类型检查和更快的编译速度。这些改进不仅提升了开发体验,还为未来的版本奠定了坚实的基础。对于使用 TypeScript 的开发者来说,升级到 6.0 版本可以显著提高代码质量和开发效率。