博客框架迁移:Gatsby → Astro

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

本博客从Gatsby迁移到Astro,迁移过程简单,只需改改frontmatter。使用Astro Cactus模板,样式精简,框架完善。评论系统迁移至twikoojs。Astro构建速度较慢,但整体满意。结束Gatsby的一生。

🔎

延伸解读

迁移成本:内容易,框架难

文章指出,以 Markdown 为核心的内容迁移非常简单,只需修改 frontmatter。但页面框架的迁移更麻烦,因为原 Gatsby 站点几乎所有页面都是自行实现的。作者借助 Astro Cactus 模板简化了框架搭建,但 i18n、程序化修改 frontmatter 等环节仍耗费了不少时间。

评论系统迁移:数据合并是难点

作者将手写评论系统迁移到 twikoojs,因为两者都使用 MongoDB,数据迁移相对简单。主要工作是将原来的 comments 和 replies 两个集合合并为一个,并调整字段映射。文中给出了具体的迁移脚本,展示了如何将旧数据转换为 twikoo 所需的格式。

构建速度:Astro 反而更慢

尽管 Astro 在 Lighthouse 跑分上接近满分,但构建速度却不如 Gatsby。作者实测 Astro 平均构建时间为 1.5 分钟,而 Gatsby 仅需 1 分钟,Gatsby 快了 50%。作者猜测 Gatsby 可能使用了缓存,但尝试开启 Astro 的 contentCollectionCache 后直接导致构建错误,只能关闭。

取舍与结果:跑分优先,接受构建速度

面对 Astro 构建速度较慢的问题,作者最终仍决定迁移,主要因为 Lighthouse 跑分令人满意,且已经投入了大量时间。文章以“Goodbye, Gatsby”结尾,宣告结束 Gatsby 的使用,整体对 Astro 表示满意。

❓

Q&A

博客从Gatsby迁移到Astro,内容迁移麻烦吗?

不麻烦。因为是以markdown为核心的系统,内容天生容易迁移,基本上改改frontmatter就可以了。

迁移到Astro后,页面框架是怎么处理的?

使用了Astro Cactus模板,样式精简,基本框架很完善,包括按标签分类的列表、标签页、归档页等。关于页直接作为普通内容迁移,友链页从.jsx改为.astro也很简单。

评论系统迁移到了什么?数据迁移复杂吗?

迁移到了twikoojs。因为之前和twikoojs都用mongodb,所以数据迁移不算太难,主要是把原来的comments和replies两个集合二合一。

Astro和Gatsby的构建速度对比如何?

Astro平均构建时间1.5分钟,Gatsby平均1分钟,Gatsby比Astro快50%。尝试打开contentCollectionCache后构建错误,只能关闭。

迁移后博客的灯塔跑分怎么样?

灯塔跑分全绿,均分接近100,十分满意。之前Gatsby的均分也有90+。

迁移过程中遇到了哪些高耗时的问题?

高耗时的问题包括:i18n实现、一些需要程序直接修改的frontmatter、自动生成文章封面的satori(因CJK字体文件太大导致构建OOM而移除)。

🏷️

标签

➡️

继续阅读