从Hexo到Astro Firefly:我的博客迁移之旅

朋友们!还在纠结博客框架选择吗?看过来!
作为一个写了几年博客的技术博主,我最近完成了从 Hexo 到 Astro Firefly 的迁移。今天就来和大家分享一下这次迁移的全过程,包括两个框架的对比、迁移步骤以及部署经验。
为什么要从 Hexo 迁移到 Astro?
📊 框架对比
| 特性 | Hexo | Astro Firefly |
|---|---|---|
| 技术栈 | Node.js + EJS/Pug | Astro + Svelte + Tailwind CSS |
| 构建速度 | 中等 | 极快(增量构建) |
| 加载速度 | 一般 | 超快(零JS默认) |
| SEO优化 | 依赖插件 | 内置优化 |
| 开发体验 | 静态渲染 | 混合渲染(SSR/SSG) |
| 生态系统 | 插件丰富但陈旧 | 现代化且活跃 |
| TypeScript | 支持有限 | 原生支持 |
| 热更新 | 较慢 | 毫秒级响应 |
✨ Astro 的核心优势
- 更快的构建速度:Astro 的增量构建让开发体验大幅提升
- 更好的性能:默认零 JS,首屏加载极快
- 现代化技术栈:支持 React、Vue、Svelte 等多种框架
- 内置优化:自动代码分割、图片优化、SEO 友好
🚀 迁移过程详解
步骤1:环境准备
首先确保你的环境满足要求:
# 检查 Node.js 版本(需 ≥ 22)node -v
# 安装 pnpm(推荐)npm install -g pnpmpnpm -v步骤2:Fork Firefly 仓库
在 GitHub 上 Fork Firefly 仓库到你的账户。
# Fork Firefly 仓库地址https://github.com/CuteLeaf/Firefly
步骤3:初始化 Firefly 项目
# 克隆仓库(建议先 Fork 到自己的仓库)git clone https://github.com/你的用户名/Firefly.gitcd Firefly
# 安装依赖pnpm install
步骤4:配置博客基础信息
编辑 src/config/siteConfig.ts:
// 站点基础配置export const SITE_CONFIG = { name: "你的博客名称", title: "你的博客标题", description: "你的博客描述", lang: "zh_CN", url: "https://你的域名.com", // ... 其他配置};
步骤5:迁移文章内容
Hexo 的文章通常在 source/_posts/ 目录,需要迁移到 Astro 的 src/content/posts/ 目录。
Frontmatter 转换示例:
Hexo 格式:
---title: 文章标题date: 2024-01-01 12:00:00tags: [标签1, 标签2]category: 分类---Firefly 格式:
---title: 文章标题published: 2024-01-01description: 文章描述image: ./cover.jpg # 或使用 "api" 启用随机封面tags: [标签1, 标签2]category: 分类draft: falsepinned: falsecomment: true---步骤6:处理图片和静态资源
将 Hexo 的 source/images/ 迁移到 Astro 的 public/ 目录。
# 复制图片资源cp -r ../hexo-blog/source/images/* public/images/步骤7:配置导航栏
编辑 src/config/navBarConfig.ts 配置导航菜单组件.

步骤7:配置侧边栏
和 src/config/sidebarConfig.ts 配置侧边栏组件。

更多个性化配置,请参考 Firefly 主题文档。
步骤7:本地测试
# 启动开发服务器pnpm dev
# 构建生产版本pnpm build
# 预览构建结果pnpm preview🛠️ 部署实战:Vercel + Cloudflare
- 登录 Vercel,点击 “New Project”
2. 导入仓库,选择你的 Firefly 仓库
3. 配置项目(默认已配置好,确认即可):
- Framework Preset:
Astro - Root Directory:
./ - Build Command:
pnpm run build - Output Directory:
dist
-
点击 Deploy,等待部署完成

-
配置域名(可选):Vercel 域名在国内访问速度较慢,建议配置自定义域名。这里以 Cloudflare 为例,配置域名后即可访问。
- 购买域名(如果还没有)
- 打开刚部署好的 Vercel 项目,点击 “Domains” 选项卡,添加自定义域名。

- 在 Cloudflare 控制台添加自定义域名
- 配置 DNS 记录,将域名指向 Vercel 提供的 IP 地址

- 等待 DNS 记录生效(通常需要 10-30 分分钟)
-
必应IndexNow(可选):
- 去 必应 IndexNow 点击 “Get Started” 按钮

- 在打开的页面中,下滑到页面底部,有一个
Generate API Key区域,点击 “Generate” 按钮,即可获取 新的API Key,复制该 Key 到剪贴板,
- 然后到
blog根目录/public/文件夹下创建一个apikey.txt文件,将复制的API Key 放入文件中,注意txt文件名也为key的内容。
- 安装必应 IndexNow 插件,在根目录执行
pnpm install astro-indexnow - 配置插件,在
blog/astro.config.mjs中添加以下内容:
// 引入 IndexNow 插件import indexnow from 'astro-indexnow';// 新增 IndexNowindexnow({key: '7axxxxxxxxxxxxxxxxxxxb43c1', // 你的Key// 可选:指定引擎(默认必应+Yandex)keyLocation: '/7axxxxxxxxxxxxxxxxxxxb43c1.txt',// 可选:提交引擎(默认 Bing、Yandex)engines: ['bing', 'yandex'],// engines: ['bing']})
- 这么操作完后,每次执行
pnpm run build,即可自动提交 IndexNow 插件(本地执行不会推送哦)
- 去 必应 IndexNow 点击 “Get Started” 按钮
🎨 Firefly 主题特色功能
1. 双侧边栏布局
Firefly 支持单侧边栏和双侧边栏配置,可以放置日历、目录、音乐播放器等组件。
2. 多种文章布局
支持列表布局、网格布局、瀑布流布局,可在配置文件中自由切换。
3. 个性化配置
- 主题色自定义(360° 色相调节)
- 亮暗色模式自动切换
- 自定义字体和壁纸
- 樱花飘落等动画特效
4. 功能丰富
- 全文搜索(Pagefind)
- 文章置顶和推荐
- 评论系统集成
- 友链和相册功能
💡 迁移注意事项
- 备份数据:迁移前务必备份 Hexo 博客的所有文件
- URL 重定向:如果文章 URL 结构变化,需要配置重定向规则
- 评论迁移:如果使用 Disqus 等评论系统,需要迁移评论数据
- SEO 保留:确保文章的永久链接不变,或设置 301 重定向
- 测试验证:迁移后全面测试各项功能是否正常
📝 总结
从 Hexo 迁移到 Astro Firefly 是一次非常愉快的体验:
- 开发体验提升:热更新速度极快,TypeScript 支持完善
- 性能大幅提升:首屏加载时间减少了 60%+
- 功能更加丰富:Firefly 主题提供了很多开箱即用的功能
- 部署更加便捷:Vercel 和 Cloudflare 都提供了很好的支持
如果你也在考虑迁移博客,不妨试试 Astro Firefly,相信你会喜欢上它的!
项目地址
- Firefly 主题:https://github.com/CuteLeaf/Firefly
- 在线预览:https://blog.huhaha.vip/
- 使用文档:https://docs-firefly.cuteleaf.cn/
互动时间
你现在使用的是什么博客框架?有没有考虑过迁移?欢迎在评论区分享你的想法!
如果你在迁移过程中遇到了什么问题,也可以在评论区留言,我会尽力帮助你!
推荐阅读:
- 不想修改hosts?这个神器更简单!SteamTools 让你一键加速GitHub和Steam,告别网络问题
- 替代Notion的最佳选择!这个开源工具太惊艳了
- 发现宝藏音乐软件!LX Music 让你告别多 app 切换,一个软件听遍所有平台
(注:文章部分信息来源于 Firefly 官方文档和个人迁移经验)
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
小王的博客














