2026-06-22-前端技术周报
本文由 GLM 整理发布。
本期前端技术周报统计 2026-06-16 至 2026-06-22 的官方更新,重点是 Node.js 跨三条维护线的安全发布、Astro 7 主版本落地,以及 pnpm 11.8 与 npm 12 预发布带来的兼容与工作流变化。
运行时与安全
本分类参考来源:Node.js Security Releases。
Node.js
Node.js 于 6 月 18 日同步发布 v26.3.1(Current)、v24.17.0(LTS)与 v22.23.0(Maintenance LTS),覆盖三条活跃维护线。两项高危为 WebCrypto AES 整数溢出(CVE-2026-48933),当 subtle.encrypt() 输入达到 2GiB 倍数时进程崩溃;以及 Unicode 点分隔符处理导致的 TLS 通配符深度校验绕过(CVE-2026-48618)。
中低危集中在 HTTP/2 与 TLS 路径:客户端被恶意 ORIGIN 帧耗尽内存(CVE-2026-48619)、GOAWAY 后仍接收数据(CVE-2026-48937)、mTLS 大小写匹配绕过(CVE-2026-48928)、嵌入式 nul 主机名重绑定(CVE-2026-48930)、会话复用绕过主机校验(CVE-2026-48934)、代理凭据泄露(CVE-2026-48615)。
另有 process.report.writeReport() 路径校验绕过(CVE-2026-48617)一项低危,以及同批同步的 llhttp 9.4.2、nghttp2 1.69.0、OpenSSL 3.5.7 与 undici 升级。所有维护期内的 Node.js 部署应尽快升级,使用 HTTP/2 客户端、TLS 证书校验或 crypto.subtle 的服务端代码需回归验证。
渲染与站点生成
本分类参考来源:Astro releases。
Astro
参考来源:Astro 7.0.0
Astro 于 6 月 22 日发布 7.0.0 主版本。默认 Markdown 处理器切换为原生 Sätteri 管线,@astrojs/markdown-remark 不再默认安装;默认编译器替换为 Rust 版 @astrojs/compiler-rs,对未闭合 HTML 标签等非法语法改为报错而非忽略。
compressHTML 默认值改为 JSX 规则压缩,内联元素间空白处理可能变化;@astrojs/db 包及其 astro db 系列命令被移除,建议改用 node:sqlite 或 Drizzle。检测到 AI 编码 agent 时 astro dev 自动以后台进程启动,新增 astro dev stop/status/logs 子命令。
依赖 remark/rehype 插件的项目升级前需显式安装 @astrojs/markdown-remark,使用 @astrojs/db 的项目须先迁移数据层。编译器收紧非法语法后,原本被静默忽略的 HTML 错误会变成构建失败。
构建工具
本分类参考来源:Rspack releases、Rolldown releases。
Rspack
参考来源:Rspack v2.1.0-beta.0
Rspack 于 6 月 18 日发布 2.1.0-beta.0。builtin:swc-loader 新增 React Compiler 支持,在 jsc.transform.reactCompiler 开启即可直接编译,省去额外 loader 串联。生产构建默认启用 side-effect-free 函数分析,通过 #__NO_SIDE_EFFECTS__ 标注与 experiments.pureFunctions 配置跨模块识别纯函数,返回值未用时更可靠地移除调用。
该版本还引入实验性 runtimeMode、持久化缓存的 maxAge/maxGenerations 清理参数,以及多项序列化与模块图遍历的性能优化。生产 Tree shaking 行为因默认开启 pureFunctions 会变化,升级后应回归产物体积校验。
Rolldown
参考来源:Rolldown 1.1.2
Rolldown 于 6 月 18 日发布 1.1.2 稳定版。随 oxc_resolver 11.21.3 调整 tsconfig 解析:compilerOptions.paths 现对 include 中显式声明的非 TS 扩展名(如 src/**/*.vue、src/**/*.svelte)生效,解除 create-vite Vue + TS 默认布局下别名失效的阻塞。
auto-discovery 不再为无项目归属的文件回退到最外层 tsconfig,避免别名泄漏到未拥有文件,行为对齐 tsserver 与 typescript-go。另增加 decorator 的 strictNullChecks 推断与若干返回类型错误信息。依赖 Vite 8(经 oxc-resolver 解析 tsconfig)的 Vue/Svelte 项目升级后路径解析会变化,应回归别名覆盖。
包管理
本分类参考来源:pnpm releases、npm CLI releases。
pnpm
参考来源:pnpm 11.8.0
pnpm 于 6 月 18 日发布 11.8.0 稳定版。pnpm install 新增 --dry-run,完整解析依赖但不写盘且始终返回 0,对齐 npm install --dry-run 语义。pnpm run --no-bail 在非递归模式下脚本失败时也以非零退出,修正此前始终返回 0 的行为。
pnpm sbom 增强:devDependencies 标记 CycloneDX scope: "excluded",新增 --out/--split 按 workspace 包拆分输出。该版本修复配置依赖路径遍历漏洞(GHSA-qrv3-253h-g69c),提交了带遍历形状的 configDependencies 的 lockfile 此前可能在 node_modules 外创建链接。CI 中的 --no-bail 调用需确认退出码处理逻辑,SBOM 输出消费方需适配新增字段。
npm
npm 于 6 月 19 日发布 12.0.0-pre.1 预发布版,引入多项破坏性变更。Node 引擎要求收紧为 ^22.22.2 || ^24.15.0 || >=26.0.0;allow-git 与 allow-remote 默认改为 "none",安装 git 依赖或用户提供的 tarball URL 需显式放开。
npm init 默认 license 由 ISC 改为空串并省略字段;未知 .npmrc 配置、未知 CLI 参数与单横线多字符缩写改为抛错而非警告;git 依赖保留 https 协议;根 preinstall 在依赖安装前运行。还为 min-release-age 新增排除配置并加入原生依赖补丁命令。该版本仅为预览,生产不建议采用,但 CI 与私有源环境应提前评估 allow 策略与 lint 规则的兼容性。