内容标签

Next.js

返回全部文章
编程笔记
按博客的实际 Git 改动,记录如何用 Bun.YAML.parse 替换 gray-matter,用 Bun.markdown 替换 marked。代码包括 frontmatter 分隔、标题与目录提取、Shiki 高亮回填、外链处理和搜索文本提取,以及内容脚本移除依赖的过程;上线后观察到内存明显下降、启动加快。
部署记录
Next.js standalone 的 server.js 看起来适合用 Bun 再打包,但实验只把入口从 12.33 KB 缩到 10.96 KB,编译出的 EXE 也未能启动。本文结合产物体积分布、100 并发压测和 CPU Profile,说明二次打包没有解决什么,以及访问日志与 HTTP 响应为何更值得检查。
部署记录
博客首页返回一年 s-maxage,ETag 又在压测中产生计算开销,该保留哪个?这次调整从真实响应出发,对比 130 KB HTML、gzip 与 304 条件请求,说明浏览器缓存和共享缓存的区别,以及首页每次验证、文章保留默认策略、manifest 缓存一天的具体理由和验证方法。
编程笔记
一篇 .NET 排障文章文件存在、slug 正确,也标记为公开,却在博客压测中返回 404。问题出在 Bun.Glob 默认跳过点开头的文件,文章从未进入内容索引。本文记录扫描对照、最小复现、保留 slug 的重命名修复,以及为何文件名检查必须主动包含隐藏文件才能防止复发。
编程笔记
给博客试用马善政、方圆体和得意黑后,最终使用 MiSans 正文与 Cascadia Mono 代码字体。本文记录预览与文章页的差别、OTS 解码失败时如何排查文件、next/font/local 的接入方式,以及两份中文字体约 9.48 MiB 的实际体积和浏览器字体命中的验证方法。
字体MiSansCascadia MonoNext.js查看正文 →
编程笔记
解释 TypeScript 6.0.3 为什么是最后一条 JavaScript 编译器版本线、7.0.2 为何直接进入 Go 原生实现,以及 Next.js、typescript-eslint 和 Bun 项目选择版本时真正受什么约束,也说明本次迁移暂留 5.9.3 的原因。
编程笔记
解释 Next.js 的 runtime=nodejs、NEXT_RUNTIME、Node 兼容 API 与实际 Bun 进程之间的区别,并给出 node:http、node:path、process.env 和 @types/node 是否应该迁移的判断标准。
部署记录
记录一个 Next.js 16 monorepo 从 npm 和 Node.js 完整迁移到 Bun 1.4 的过程,覆盖 workspace、开发与构建脚本、bun:test、standalone tracing、Docker 镜像和生产冒烟验证。
编程笔记
用一个 catch-all Route Handler 让 Hono 接管 Next.js 的健康检查、搜索、附件和 MCP API,解释为什么这里直接调用 app.fetch,而不是使用 hono/bun 启动第二个服务器,并为本地文件与对象存储保留替换边界。