把搜索索引搬到构建期:638 个章节文档、1.2 MB 和中文分词的代价
静态站的全文搜索该什么时候建索引、按什么粒度切文档、中文为什么必须换分词器?本文用本仓库 99 篇文章切片出的 638 个章节文档实测 Fuse.js 7.5 的默认模糊搜索与 token 搜索,记录 Bitap 的 32 字符上限、Intl.Segmenter 带来的 6 倍建索引开销,以及 1.2 MB 索引的静态分发预算。
记录前端、全栈开发与工程化实践中的方案、取舍和复盘。
静态站的全文搜索该什么时候建索引、按什么粒度切文档、中文为什么必须换分词器?本文用本仓库 99 篇文章切片出的 638 个章节文档实测 Fuse.js 7.5 的默认模糊搜索与 token 搜索,记录 Bitap 的 32 字符上限、Intl.Segmenter 带来的 6 倍建索引开销,以及 1.2 MB 索引的静态分发预算。
2026 年,前端工具链完成了一次罕见的集体换血:TypeScript 7.0 将编译器用 Go 原生重写,全量构建普遍提速 8 到 12 倍;Vite 8 用 Rust 编写的 Rolldown 统一了开发与生产打包,自 Vite 2 以来首次把 dev 与 prod 的打包器合二为一。本文基于 TypeScript 与 Vite 官方发布说明,梳理这两次升级的关键数据、并行化与兼容方案,以及存量项目迁移时的工程决策。
2026 年 10 月 14 日,Vercel 发布带外安全更新 Next.js 16.4.1 / 15.5.28,修复两个 CVSS 9.5 的未认证远程代码执行漏洞(use cache 返回 typed arrays、SVG 图像优化)与一个 Server Actions 拒绝服务漏洞。本文梳理三个公告的影响范围与根因链路,重点说明 15.x 升级时 sharp 依赖的隐藏陷阱、依赖扫描盲区,以及自托管应用的修复与验证步骤。
Next.js 16.4 于 2026 年 10 月 6 日发布,官方正式推荐 Cache Components 作为所有 Next.js 应用的首选编程模型,create-next-app 新项目默认启用。本文基于官方发布说明,梳理缓存组件模型的核心机制、ensureStatic 与 navigation() 等新 API、面向编码智能体的升级工具链,以及 Turbopack 与 React 19.3 带来的构建优化,并讨论存量应用迁移时值得注意的工程决策。
2026 年 9 月底至 10 月初,npm 12.2.0 与 pnpm 12.9 相继发布。npm 侧让 dist-tag 支持 OIDC 认证,GitHub trusted publishing 新增默认关闭的 dist-tag 权限;pnpm 侧修复 pnpm login 在重定向时转发凭据的问题,新增 per-registry networkConcurrency,并在打包前警告 .env 进入 tarball。本文梳理发布管道安全相关变更、升级建议与供应链安全背景。
2026 年 9 月,Next.js 连续发布两次安全更新:9 月 22 日针对 Satori 上游漏洞的 Node.js ImageResponse 远程代码执行修复(16.3.6 / 15.5.26),以及 9 月 30 日覆盖九个漏洞的例行安全发布(16.3.8 / 15.5.27)。本文梳理漏洞影响面、版本路线与升级建议。
2026 年 9 月 9 日发布的 React 19.3 把 View Transitions 与 Fragment Refs 从实验 API 转为稳定:动画只在 Transition 中触发、addTransitionType 让同一个 state 变化有两个方向、FragmentInstance 让一组兄弟节点不必再套 wrapper。此外 react-dom 新增 browser() 逃逸口、补齐 Trusted Types,Server Components 可直接渲染 Context。本文基于官方发布博客、API 文档、changelog 与多份第三方解读,梳理用法、边界与升级时真正要做的判断。
2026 年 8 月 Bun 1.4 正式发布,将约一百万行核心代码从 Zig 重写为 Rust。本文梳理这次重写的原因、11 天 LLM 辅助重写的过程,以及 Node.js 兼容性、性能与内建 API 带来的实际变化。
2026 年 8 月 21 日发布的 Next.js 16.3.2 把仓库 CI 里 Turborepo 远程缓存的认证方式,从长期有效的静态 PAT 换成了每次任务临时签发的 OIDC 令牌。本文拆解 PR
8 月 10 日,pnpm 官方博客发布 pnpm 12 差异说明:用 Rust 重写、处于 RC 阶段,却保留 pnpm 11 的命令、设置与锁文件格式。本文拆解三大实质变化、Rust 重写的演进路径,以及团队切换前需要检查什么。
记录前端、全栈开发与工程化实践中的方案、取舍和复盘。
静态站的全文搜索该什么时候建索引、按什么粒度切文档、中文为什么必须换分词器?本文用本仓库 99 篇文章切片出的 638 个章节文档实测 Fuse.js 7.5 的默认模糊搜索与 token 搜索,记录 Bitap 的 32 字符上限、Intl.Segmenter 带来的 6 倍建索引开销,以及 1.2 MB 索引的静态分发预算。
2026 年,前端工具链完成了一次罕见的集体换血:TypeScript 7.0 将编译器用 Go 原生重写,全量构建普遍提速 8 到 12 倍;Vite 8 用 Rust 编写的 Rolldown 统一了开发与生产打包,自 Vite 2 以来首次把 dev 与 prod 的打包器合二为一。本文基于 TypeScript 与 Vite 官方发布说明,梳理这两次升级的关键数据、并行化与兼容方案,以及存量项目迁移时的工程决策。
2026 年 10 月 14 日,Vercel 发布带外安全更新 Next.js 16.4.1 / 15.5.28,修复两个 CVSS 9.5 的未认证远程代码执行漏洞(use cache 返回 typed arrays、SVG 图像优化)与一个 Server Actions 拒绝服务漏洞。本文梳理三个公告的影响范围与根因链路,重点说明 15.x 升级时 sharp 依赖的隐藏陷阱、依赖扫描盲区,以及自托管应用的修复与验证步骤。
Next.js 16.4 于 2026 年 10 月 6 日发布,官方正式推荐 Cache Components 作为所有 Next.js 应用的首选编程模型,create-next-app 新项目默认启用。本文基于官方发布说明,梳理缓存组件模型的核心机制、ensureStatic 与 navigation() 等新 API、面向编码智能体的升级工具链,以及 Turbopack 与 React 19.3 带来的构建优化,并讨论存量应用迁移时值得注意的工程决策。
2026 年 9 月底至 10 月初,npm 12.2.0 与 pnpm 12.9 相继发布。npm 侧让 dist-tag 支持 OIDC 认证,GitHub trusted publishing 新增默认关闭的 dist-tag 权限;pnpm 侧修复 pnpm login 在重定向时转发凭据的问题,新增 per-registry networkConcurrency,并在打包前警告 .env 进入 tarball。本文梳理发布管道安全相关变更、升级建议与供应链安全背景。
2026 年 9 月,Next.js 连续发布两次安全更新:9 月 22 日针对 Satori 上游漏洞的 Node.js ImageResponse 远程代码执行修复(16.3.6 / 15.5.26),以及 9 月 30 日覆盖九个漏洞的例行安全发布(16.3.8 / 15.5.27)。本文梳理漏洞影响面、版本路线与升级建议。
2026 年 9 月 9 日发布的 React 19.3 把 View Transitions 与 Fragment Refs 从实验 API 转为稳定:动画只在 Transition 中触发、addTransitionType 让同一个 state 变化有两个方向、FragmentInstance 让一组兄弟节点不必再套 wrapper。此外 react-dom 新增 browser() 逃逸口、补齐 Trusted Types,Server Components 可直接渲染 Context。本文基于官方发布博客、API 文档、changelog 与多份第三方解读,梳理用法、边界与升级时真正要做的判断。
2026 年 8 月 Bun 1.4 正式发布,将约一百万行核心代码从 Zig 重写为 Rust。本文梳理这次重写的原因、11 天 LLM 辅助重写的过程,以及 Node.js 兼容性、性能与内建 API 带来的实际变化。
2026 年 8 月 21 日发布的 Next.js 16.3.2 把仓库 CI 里 Turborepo 远程缓存的认证方式,从长期有效的静态 PAT 换成了每次任务临时签发的 OIDC 令牌。本文拆解 PR
8 月 10 日,pnpm 官方博客发布 pnpm 12 差异说明:用 Rust 重写、处于 RC 阶段,却保留 pnpm 11 的命令、设置与锁文件格式。本文拆解三大实质变化、Rust 重写的演进路径,以及团队切换前需要检查什么。