1、问题描述
在 Ubuntu 旧环境下,博客文件夹位于 /home/zhao/Blog
,该目录已连接到 GitHub 仓库,并包含 Hexo 相关的配置文件和依赖。希望在 新 Ubuntu 系统 下重建该博客环境,并确保与 GitHub 仓库保持同步。然而,在执行 hexo
相关命令时遇到了一些问题,主要包括:
.gitignore
配置可能导致部分文件未被同步。npx hexo generate
报错TypeError: Object.fromEntries is not a function
,怀疑是 Node.js 版本过旧。hexo clean
报错Command 'hexo' not found
,怀疑是 Hexo 未全局安装。
2、问题分析与解决方案
2.1 .gitignore 配置检查
在 .gitignore
文件中,以下内容可能影响同步:
1 | .DS_Store |
node_modules/
和public/
目录可以忽略,因为它们可以通过npm install
和hexo generate
重新生成。db.json
可能包含 Hexo 的数据缓存,忽略它不会影响博客功能。
结论:.gitignore
并未影响关键文件的同步,因此问题可能出现在 Node.js 版本或 Hexo 安装上。
2.2 解决 Node.js 版本过旧问题
错误信息:
1 | TypeError: Object.fromEntries is not a function |
原因: Object.fromEntries
需要 Node.js 12+,而旧版本 Node.js 可能低于 12.0.0。
解决方案:
1 | 检查当前 Node.js 版本 |
2.3 解决 Hexo 未全局安装问题
错误信息:
1 | Command 'hexo' not found |
原因: Hexo 可能只作为 本地依赖 存在于 node_modules/
目录中,而没有全局安装。
解决方案 1(推荐):使用 npx
运行 Hexo
1 | npx hexo clean |
解决方案 2(可选):全局安装 Hexo
1 | npm install -g hexo-cli |
3、完整的博客环境恢复步骤
- 安装 Node.js 和 npm(参考 2.2 章节)。
- 进入博客目录 并安装依赖:
1
2cd /home/zhao/Blog
npm install - 清理缓存并重新生成博客:
1
2
3hexo clean
hexo generate
hexo server - 本地访问博客:
在浏览器中打开http://localhost:4000
,检查博客是否正常显示。 - 同步 GitHub 远程仓库(可选):
1
2git remote -v # 确保远程仓库正确
git pull origin main # 拉取最新代码 - 配置DNS解析
添加CNAME文件到仓库中,内容书写个人网站,此处我的为zhaoyuanhangblogs.top
,然后进入仓库设置,选择Pages
选项,下滑到DNS解析部分,开启强制HTTPS,并在上方添加同样的网站地址,然后Save,就会自动解析
4、总结
在新 Ubuntu 系统下迁移 Hexo 博客时,可能会遇到 Node.js 版本过旧 和 Hexo 未全局安装 的问题。通过升级 Node.js、安装 Hexo 依赖以及正确执行 Hexo 命令,可以成功恢复博客环境并同步 GitHub 仓库。
至此,Hexo 博客已成功在新系统下恢复并可正常使用!🎉