前端周刊 | 第 42 期:Rspack 2.0 破局、cdnjs 全量上云、CSS 交错动画入基线(2026.07.28 - 08.03)

本周前端领域最值得关注的 10 件大事,带你快速掌握技术脉搏。


📌 本周 Top 10 速览

排名 事件 关键词
1 Rspack 2.0 正式发布 构建工具、Rust、ESM、性能翻倍
2 Cloudflare 完成 cdnjs 全量迁移 CDN、Serverless、9B 请求/天
3 pnpm 11.19.0 发布 包管理器、工作区发布、安全修复
4 Node.js 全新 API 文档预览站上线 文档体验、beta.docs.nodejs.org
5 Webpack 5.109.0 内置 TS/CSS/HTML 零配置、内置支持、Webpack 6 前瞻
6 Shadcn/UI 默认切至 Base UI,React Aria 入列 UI 组件、Radix、Base UI、React Aria
7 CSS sibling-index() 即将纳入 Baseline CSS 动画、交错效果、@starting-style
8 Bun Rust 重构版性能曝光 JS 运行时、Rust、冷启动
9 ES2026 正式获批,Temporal API 与 using 入标 语言标准、Date 替代、资源管理
10 Oxlint 1.75.0 发布,AST 结构重大调整 Lint 工具、MetaProperty、破坏性变更

1. 🚀 Rspack 2.0 正式发布:构建性能翻倍,依赖从 192 个砍到 1 个

一句话摘要 :字节跳动开源的 Rust 构建工具 Rspack 于 7 月 29 日发布 2.0,构建速度较 1.0 最高提升 100%,@rspack/dev-server 依赖从 192 个锐减至 1 个,核心包全面转向纯 ESM。

详细解读

Rspack 2.0 的发布标志着它不再满足于做"更快的 webpack 替代品",开始走出自己的技术路线。根据官方基准测试,在包含 10,000 个组件的 React 项目中,启用持久化缓存后的生产构建从 1.0 的 5.6 秒降至 2.0 的 1.4 秒;HMR(热模块替换)时间降至 118 毫秒。

更引人注目的是依赖治理:@rspack/dev-server 的安装体积从 15 MB 缩减至 1.4 MB,依赖数量从 192 个砍到仅剩 1 个。Hacker News 上的评论称:"与性能数据相比,依赖项减少的数字更让我印象深刻,这是一种理念的转变,而不仅仅是基准测试。"

在架构层面,@rspack/core 已作为纯 ESM 包发布,移除了 CommonJS 构建产物。由于 Node.js v20.19+ 支持通过 require() 加载 ESM,大多数使用 JavaScript API 的项目无需修改代码即可升级。2.0 还新增了对 import.meta 和 Stage 3 的 import defer 提案的支持,并默认启用无副作用函数的 Tree Shaking 分析。

开发者建议

  • 如果你正在维护一个 webpack 项目,Rspack 2.0 是当下最平滑的迁移路径(约 95% API 兼容),建议先在 CI 中做并行构建对比测试。
  • 微前端场景下的 ModuleFederationPlugin 用户可优先评估,Rspack 对该插件的支持已相当成熟。
  • 注意纯 ESM 切换可能影响到一些旧的 CJS 插件,升级前请检查插件兼容性。

2. ⚡ Cloudflare 完成 cdnjs 全量迁移:日处理 90 亿请求的 Serverless 实践

一句话摘要:Cloudflare 于 7 月 30 日宣布,已将其托管的知名开源 CDN cdnjs 完全迁移至 Cloudflare Developer Platform,日处理 90 亿请求,并借此推高了 Workers 和 Workflows 的平台限制。

详细解读

cdnjs 是全球最繁忙的开源 CDN 之一,覆盖约 12% 的网站,占据 JavaScript CDN 市场 48.3% 的份额,日均处理 108,000 请求/秒。

此次迁移的最大看点在于架构重构:旧的发布管道依赖 GCP Cloud Functions、git-sync VM 和 GitHub 仓库,存在"分裂存储"(KV 与 GitHub 双写)、可观测性缺失、26 个按字母分片的 Cloud Function 等痛点。新架构完全基于 Cloudflare 自研平台:R2 作为单一数据源、Workers 处理请求、Workflows 编排持久化任务、Queues 解耦压缩作业、Durable Objects 协调并行计数。

迁移过程中,cdnjs 团队还"倒逼"平台提升了两个关键限制:Workers 单次调用的子请求上限从 1,000 提升至 1,000 万;Workflows 的默认步骤数从 1,024 提升至 10,000(可配置至 25,000)。这对所有 Cloudflare 开发者都是利好。

开发者建议

  • 如果你在使用 cdnjs 托管生产资源,迁移对你完全透明,但建议检查 SRI(子资源完整性)哈希是否匹配。
  • 对于正在评估边缘架构的团队,cdnjs 的迁移案例是 Serverless + Workflows + R2 处理海量静态资源的绝佳参考。
  • 关注 Cloudflare 新推出的 Agents SDK(7 月 30 日),它允许在 Workers 上构建有状态的 AI Agent。

3. 📦 pnpm 11.19.0 发布:原生工作区发布管理与供应链安全加固

一句话摘要 :pnpm 于 7 月 31 日发布 11.19.0,引入原生工作区发布管理(pnpm changepnpm lane)、pnpm doctor 诊断命令,并修复了路径遍历漏洞,冷缓存解析峰值内存降低约 30%。

详细解读

pnpm 11.11-11.14 系列在 7 月密集迭代,11.19.0 作为最新稳定版带来了多项工程化能力。其中最值得关注的是原生工作区发布管理pnpm change 用于生成变更集、pnpm lane 管理工作区发布流、pnpm version -r 支持递归版本升级------这些功能此前通常依赖 changesets 等第三方工具,现在 pnpm 内置支持,减少了工具链复杂度。

安全方面,该系列修复了一个路径遍历漏洞 (Path Traversal),同时将冷缓存解析期间的峰值内存占用降低了约 30%。新增的 pnpm doctor 命令可用于端到端诊断安装状态,帮助排查 lockfile 不一致、peer dependency 冲突等常见问题。

此外,peerDependencies 现在支持协议标识符声明,pnpm accesspnpm team 命令可用于管理 registry 上的包与组织权限。

开发者建议

  • 使用 pnpm workspaces 的 monorepo 项目可以逐步用内置的 pnpm change 替代 changesets,减少一个依赖。
  • 建议运行 pnpm doctor 对现有项目做一次健康检查,特别是长期维护的老项目。
  • 关注 pnpm v12(Rust 重写版)的进展,11.10 已支持通过 pnpm self-update 安装预览。

4. 📚 Node.js 全新 API 文档网站预览版上线

一句话摘要:Node.js 官方于 7 月 24 日推出全新 API 文档预览站(beta.docs.nodejs.org),采用全新设计与交互,旨在解决旧文档站信息架构混乱、搜索体验差等长期痛点。

详细解读

Node.js 的 API 文档一直是开发者日常高频访问的站点,但旧版文档在信息层级、跨版本对比、移动端适配等方面饱受诟病。新预览站从底层重新设计,目前处于 beta 阶段。

虽然具体的技术栈细节尚未完全公开,但从预览版可以看出几个改进方向:更清晰的模块分类导航、增强的搜索功能(支持按版本过滤)、以及更友好的 TypeScript 类型标注展示。这对于每天需要查阅 fsstreampath 等核心模块 API 的开发者来说,是实实在在的效率提升。

开发者建议

  • 日常查阅 Node.js API 时,可以尝试切换到 beta.docs.nodejs.org 体验新界面,并通过官方渠道反馈问题。
  • 如果你在维护 Node.js 相关的教程或内部文档,建议关注新文档站的 URL 结构和锚点规则变化,提前做适配。

5. 🔧 Webpack 5.109.0 内置 TypeScript/CSS/HTML:向"零配置"迈出关键一步

一句话摘要 :Webpack 5.109.0 于 7 月 23 日发布,实验性内置 TypeScript、CSS 和 HTML 支持,无需 ts-loadermini-css-extract-pluginhtml-webpack-plugin 即可直接构建。

详细解读

Webpack 的 2026 年路线图明确提出要将常用插件功能吸收进核心,减少外部依赖。5.109.0 是这一战略的重要落地:内置 TypeScript 转译意味着不再需要 ts-loaderbabel-loader 处理 .ts 文件;内置 CSS 模块支持(experimental.css)将最终取代 mini-css-extract-plugin;而 HTML 入口点集成则让 html-webpack-plugin 成为可选而非必需。

此外,Webpack 还在探索"懒加载 Barrel 优化"(受 Rspack 启发),跳过构建无副作用的 Barrel 文件(index.ts 统一导出)中未被实际引用的模块,直到它们被真正使用。统一的 minimizer-webpack-plugin 也在规划中,将整合 terser-webpack-plugincss-minimizer-webpack-plugin

开发者建议

  • 新项目可以尝试启用 experimental.css 和内置 TS 支持,体验"更少插件、更快配置"的构建流程。
  • 现有项目无需急于迁移,Webpack 6 才会正式将这些特性从实验状态转为默认。建议先在小范围模块中验证兼容性。
  • 关注 Webpack 的"Universal Target"计划,未来一份配置可同时输出兼容 Node.js、Bun、Deno 和浏览器的代码。

6. 🎨 Shadcn/UI 默认切至 Base UI,React Aria 成一等公民

一句话摘要:Shadcn/UI 在 7 月宣布 Base UI 正式成为新项目的默认底层库(替代 Radix),同时 React Aria 也升级为与 Base UI、Radix 并列的一等支持选项。

详细解读

这是 Shadcn/UI 历史上最重要的架构决策之一。自 2023 年诞生以来,Shadcn/UI 一直建立在 Radix UI 之上。但 2025 年底 Base UI(由 MUI 团队维护,核心开发者正是原 Radix 团队)发布后,社区迅速转向------数据显示 shadcn/create 上 Base UI 的选用率已是 Radix 的 2 倍。

7 月的更新包含三个层面:

  1. Base UI 成为默认npx shadcn init 默认使用 Base UI,Radix 通过 -b radix 保留。
  2. React Aria 入列 :Adobe 的 React Aria 组件库成为第三个一等支持的底层,可通过 --base aria 初始化。
  3. 新增 Toast 组件:Base UI 项目现在可用原生 Toast,支持动作、状态类型、Promise 模式和滑动手势关闭。

Shadcn 官方明确表示:Radix 不会被废弃,所有更新和新组件仍会同时支持两套底层。现有项目无需迁移。

开发者建议

  • 新项目建议直接采用 Base UI 默认方案,享受更活跃的维护节奏和更完善的 TypeScript 类型。
  • 需要 Combobox、Autocomplete 等复杂交互组件的团队,Base UI 的实现目前比 Radix 更成熟。
  • 如果你的项目深度定制了 Radix 的底层行为,保持现状即可,Shadcn 的抽象层允许两套库共存。

7. 🌈 CSS sibling-index() 即将纳入 Baseline:一行代码实现交错动画

一句话摘要 :CSS-Tricks 报道,sibling-index()sibling-count() 函数即将纳入 Web Baseline,配合 @starting-style 可实现无需 JavaScript 的列表交错入场动画。

详细解读

过去实现列表项的交错动画(stagger animation),开发者通常需要借助 JS 给每个元素动态计算 animation-delay,或者使用预处理器生成大量 nth-child 规则。CSS 新增的 sibling-index() 函数可以直接在样式表中获取元素在兄弟节点中的位置(从 1 开始计数),彻底简化这一模式。

css 复制代码
li {
  transition: opacity 0.3s ease;
  transition-delay: calc((sibling-index() - 1) * 100ms);
  
  @starting-style {
    opacity: 0;
  }
}

上述代码即可实现列表项依次淡入的效果,无需任何 JS。sibling-count() 则可获取兄弟节点总数,常用于计算中间元素的精确居中或对称布局。这两个函数已在稳定版 Chrome 和 Safari 中可用,纳入 Baseline 意味着跨浏览器支持即将统一。

开发者建议

  • 在支持 sibling-index() 的浏览器中,可以逐步替换旧的 JS 交错动画方案,减少运行时开销。
  • 配合 @starting-styletransition-behavior: allow-discrete 使用,可以实现 display: nonedisplay: block 的平滑过渡------这是 2026 年 CSS 动画最值得掌握的"三件套"。
  • 生产环境建议做好 @supports 回退,或将其作为渐进增强。

8. ⚙️ Bun Rust 重构版性能曝光:冷启动超越 Deno 与 Node.js

一句话摘要:Bun 团队于 7 月下旬公布了 Rust 重构版的最新基准测试数据,同一环境下冷启动 Hello World 项目的性能已超过 Deno 和 Node.js。

详细解读

Bun 正在经历一场大规模的重写:从 Zig 全量迁移至 Rust,53.5 万行 Zig 代码被拆分为约 100 个 Rust crate,由 64 个并发 Claude 实例在 11 天内协同完成。

根据 7 月底公布的跑分数据,Rust 版 Bun 在冷启动场景下已经超越了 Deno 和 Node.js。其他关键指标包括:二进制体积从 88 MB 缩减至 70 MB(↓20%),2000 次构建后的内存占用从 6,745 MB 降至 609 MB(↓91%),Bun.serve 吞吐提升 4.8%。

不过需要注意的是,Rust 重写版目前仍处于实验阶段,仅支持 Linux x64 glibc,稳定版 1.3.x 仍基于 Zig 代码库。

开发者建议

  • 生产环境继续使用 Bun 稳定版(Zig 分支),Rust 版可通过 bun upgrade --canary 体验。
  • 关注内存敏感型场景(如容器化部署、Serverless 函数),Rust 版 91% 的内存降幅极具吸引力。
  • 由于 Anthropic 已于 2025 年底收购 Bun,其 Roadmap 与 Claude Code 的集成值得持续关注。

9. 📜 ES2026 正式获批:Temporal API 与 using 语法终结 30 年技术债

一句话摘要 :ECMA International 于 6 月 30 日正式批准 ECMAScript 2026(第 17 版),Temporal API 和显式资源管理(using 语法)进入标准,彻底替代有 30 年设计缺陷的 Date 对象。

详细解读

ES2026 是近年来"还债"属性最强的一个版本。它没有 ES6 那样的革命性语法,而是专注于补齐 JavaScript 的长期短板。核心新增包括:

  • Temporal API :经过 9 年开发、终于达到 Stage 4 的日期时间处理方案。与 mutable 且时区支持薄弱的 Date 不同,Temporal 对象是不可变的,原生支持时区和非格里高利历。
  • using 显式资源管理 :C# 风格的块级资源自动释放,数据库连接、文件流等可在离开作用域时自动清理,告别繁琐的 try...finally
  • Math.sumPrecise() :解决 0.1 + 0.2 !== 0.3 的经典浮点精度问题,对金融计算场景意义重大。
  • Array.fromAsync()Error.isError()Map 的 getOrInsert()Uint8Array 的 Base64/Hex 编解码 等实用方法。

遗憾被推迟到 ES2027 的是管道运算符(|>,仍在 Stage 2)和已被撤回的 Record & Tuple。

开发者建议

  • 立即在 Node.js 最新版中试用 Temporalusing,Babel 和 TypeScript 7.0 已提供转译支持。
  • 如果你维护着大量日期处理代码,建议制定渐进式迁移计划,将 Date 逐步替换为 Temporal.InstantTemporal.PlainDate
  • Math.sumPrecise() 可直接替代手写的高精度求和函数,减少第三方依赖。

10. 🔍 Oxlint 1.75.0 发布:AST 结构重大调整,自定义规则需更新

一句话摘要 :Oxlint 于 7 月 20 日发布 1.75.0,将 AST 中的 MetaProperty 拆分为 ImportMetaNewTarget,属于破坏性变更,使用自定义规则或插件的开发者需同步更新。

详细解读

Oxlint 作为 Rust 编写的高性能 JS/TS 检查工具,速度是 ESLint 的 50-100 倍,已在 Shopify、Mercedes-Benz、Airbnb 等公司生产环境使用。

1.75.0 的核心变化是 AST(抽象语法树)层面的破坏性变更MetaProperty 节点被拆分为独立的 ImportMetaNewTarget 类型。这意味着所有依赖 MetaProperty 进行遍历的自定义规则、插件或内部工具链都必须更新匹配逻辑。

新增规则方面,包括 node/no-top-level-await(禁止顶层 await)和 react/function-component-definition(约束函数组件写法)。import/consistent-type-specifier-style 新增了 prefer-top-level-if-only-type-imports 选项。性能方面继续优化,约 12 项改进涵盖早期退出快路径、规则集惰性计算和 O(1) 表层类型集合查询。

开发者建议

  • 如果你有基于 Oxlint AST 的自定义规则,请立即检查是否引用了 MetaProperty,迁移至 ImportMeta / NewTarget
  • 尚未使用 Oxlint 的项目,建议通过 eslint-plugin-oxlint 与 ESLint 并行运行,让 Oxlint 处理基础规则、ESLint 处理插件生态,逐步过渡。
  • 关注 Oxc 生态(Oxlint、Oxfmt、Oxmin)的统一进展,VoidZero 并入 Cloudflare 后,其工具链与 Cloudflare Workers 的深度集成值得期待。

📝 本周小结

本周前端领域呈现出**"Rust 化"与"原生化"**两大主线并行的态势。构建工具侧,Rspack 2.0 和 Bun Rust 版用实际数据证明 Rust 在前端基础设施中的统治力正在加深;标准与平台侧,ES2026 的 Temporalusing 终于开始偿还 JavaScript 30 年的技术债,CSS sibling-index() 则让浏览器原生能力进一步侵蚀"只能用 JS 做"的领地;生态侧,Shadcn/UI 的默认底层切换和 Cloudflare 对 cdnjs 的全量 Serverless 改造,都在告诉我们:前端工程化的下一步,是更少依赖、更强原生、更优性能。 建议开发者保持对 Rust 工具链和浏览器新 Baseline 的敏感度,适时做技术债的主动清偿。


📚 延伸阅读

相关推荐
北斗落凡尘1 小时前
React面试题
前端
一棵白菜1 小时前
mac 部署 n8n
前端
学高数就犯困1 小时前
React:常见的性能优化手段
前端·react.js
天天码行空1 小时前
vkeyboardhand:零依赖虚拟键盘指法组件
前端·javascript·vue.js
东方小月1 小时前
从零开发一个 Coding Agent(五):使用 TypeBox 校验工具参数
前端·人工智能·后端
我要两颗404西柚1 小时前
Stage four:VUE项目上线
前端·javascript·vue.js
尤乐娃子2 小时前
进入大厂(厂子大)实习Day8
前端·笔记·实习
醉城夜风~2 小时前
CSS盒模型(Box Model)
前端·css
呼噜想睡觉2 小时前
Flex弹性布局
css·html·css3
雪隐2 小时前
个人电脑玩AI-15让5060 Ti给你打工——MiniMax H3 本地部署实录:一个自带录音棚的视频模型,和它的 NVFP4 瘦身奇遇
前端·人工智能·后端