JavaScript技术周刊 2026年第20周

本周JavaScript生态迎来多项重要更新:Rolldown 1.0正式发布,作为Vite 8的Rust打包器,性能比Rollup快10-30倍;Node 26.1添加实验性FFI支持;多家主流工具发布新版本。同时关注TanStack npm供应链攻击事件及Bun移植Rust进展。

🔥 头条

TanStack npm 供应链攻击事件分析

昨日,Shai-Hulud 蠕虫的新变种将 TanStack 包的恶意版本推送到 npm(包含一个触发机制,如果检测到 token 撤销就会删除文件),不过也影响了约 170 个其他包。维护者凭据未被盗取,攻击而是通过链式利用 pull_req

📖 文章

33 个 JavaScript 概念

最初作为 Medium 文章诞生并变成热门 GitHub 仓库的内容,现在已成为一个完整的网站,涵盖广泛的 JavaScript 概念,甚至超出了 33 个。

从 React 到 Web Components:节省 100 KB 的迁移

"我如何将网站从 React 迁移到原生 Web Components,为什么效果比我预期的更好,以及我使用的模式如何发展成一个名为 nanotags 的小库。"

为什么迁移到 Valibot?

Valibot 是一个轻量级、模块化的 TypeScript 模式验证库,是 Zod 等的替代品。v1.4.0 刚刚发布。

BlueJS:将 JavaScript 编译为小型二进制文件

一个 JavaScript 的提前编译器,可选嵌入 QuickJS 以支持动态特性和包支持。虽然是闭源的,但原始数据令人信服(约 5ms 启动时间;3.8MB 峰值内存使用,以及 1.2MB 二进制文件中的 GUI 应用程序)。

🛠 工具

Rolldown 1.0 发布:高性能 JS 打包器

作为 Vite 8 骨干构建的基于 Rust 的打包器达到了稳定的 v1.0。您可以获得巨大的性能提升,同时保持 Rollup 插件 API 兼容性:它比 Rollup 快 10-30 倍,早期采用者报告构建时间大幅减少。

Wakaru:拆解压缩的 JavaScript 打包文件

一个工具,您可以输入压缩的打包代码,然后取回可读的模块,无论是用于恢复代码、逆向工程还是安全审计。您可以在线试用。

pnpm 11.1

支持 GitHub Packages 的新 gh: 前缀,pnpm bugs 在浏览器中打开包的 bug 跟踪器,pnpm audit signatures 根据密钥验证 ECDSA 注册表签名。

Astro 6.3

添加对高级路由的实验性支持:控制请求如何通过您的应用程序流动,完全支持 Hono 等框架。

Syncpack 15.0

大型 JavaScript monorepo 依赖版本管理器。现在完全支持 pnpm 和 Bun catalogs。

Expo SDK 56 Beta

这款流行的 React Native 框架获得了速度提升,Jetpack Compose 和 SwiftUI API 趋于稳定。

MDXEditor 4.0

强大的 Markdown 编辑器 React 组件。

📝 简讯

Node.js 近期协作峰会纪要

如果您想了解 Node 团队目前正在做什么,Node.js 近期协作峰会的纪要值得一读。

关于 Bun 实验性移植到 Rust(从 Zig)

关于 Bun 实验性移植到 Rust(从 Zig),Jarred Sumner 表示,现在 96 万行代码的重写通过了 Bun 原有测试套件的 99.8%。

🤖 开发者发起将 NetHack 移植到 JavaScript 的挑战

🤖 一位开发者发起了一项将 NetHack 移植到 JavaScript 的挑战。LLM 能否完美移植这款复杂的 rogue-like 游戏?到目前为止,还不能,排行榜显示转译版本最接近。

📦 版本

Jest 30.4.0

这款流行的 JavaScript 测试框架的一次重要发布,改进了 ESM、Temporal 和 React 19 的支持。

Node 26.1(当前版)

上周的大型 Node 26 发布可能包含了 Temporal API,但 26.1 添加了(实验性)官方 FFI 支持。我在上周的 Node Weekly 末尾写了一篇关于这意味着什么的文章。

Electron 42

更新到 Chromium 148/Node 24.15/V8 14.8,并不再在 postinstall 脚本中下载 Electron 二进制文件,以提高安全性。

Capacitor 9.0 Alpha 1

Capacitor 9.0 Alpha 1

相关推荐
To_OC2 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
To_OC2 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
我是坏垠4 小时前
Crypto、Cipher与Password:Java加密开发的三个核心概念
java·开发语言·python
white_ant4 小时前
JDK LTS 版本升级迁移注意事项大全
java·开发语言
Bobolink_4 小时前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
你怎么知道我是队长4 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
xingke4 小时前
C 语言多文件编程:(一)头文件、extern、编译链接
c语言·开发语言·多文件
戮漠summer5 小时前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
jinyishu_5 小时前
C++ string使用方法
开发语言·c++
EW Frontier5 小时前
三级跳突破864维动作空间——QMIX-Hierarchical多无人机协同通信方法全解析【附python代码】
开发语言·python·无人机·强化学习·通信资源分配