Hexo博客迁移步骤
Hexo博客迁移步骤(踩坑记录)
本文记录了博主在更换电脑后将旧电脑本地的Hexo博客项目迁移到新电脑,并实现在新电脑上正常发布Hexo博客至GitHub的步骤。
说明:
- 建议优先使用前置步骤+解决方案(一);
- 博主对Hexo等工具并不是很熟悉,本文仅供参考,如有错误,欢迎指正;
- 本地的Hexo博客项目本身也可上传至GitHub进行管理和备份,但此方法不在本文讨论范围内。
前置步骤
无论是使用解决方案(一)还是解决方案(二),都需要先执行以下前置步骤:
安装Git
下载链接:Git
需要完成相应的SSH配置,网上教程较多,这里省略。
安装Node.js
下载链接:Node.js
所需版本可参考 链接
安装hexo-cli
安装方式:在任意位置打开 git bash,执行指令 npm install hexo-cli -g
,其中 -g 代表全局安装,hexo-cli 是 hexo 框架的 command line interface
此处列出博主使用的版本供参考:
旧电脑 | 新电脑 |
---|---|
node.js: 14.15.0 npm: 6.14.8 hexo-cli: 4.2.0 hexo: 5.2.0 |
node.js: 18.18.2 npm: 9.8.1 hexo-cli: 4.3.1 hexo: 5.2.0 |
重要说明:
在使用任何一种解决方案之前建议先将对应GitHub仓库中的内容(包括提交记录)进行备份,以免出现提交记录被覆盖等情况。可以使用新建分支的方法来进行备份。
若使用新电脑部署博客后遇到历史提交记录被覆盖的问题,可以在旧电脑的项目中重新运行hexo d
,恢复记录。再尝试其它解决方案。
博主实际上先尝试了解决方案(二)中所述方法,但该方案可能会导致一些问题,所以最后采用了解决方案(一)中所述方法,并将其命名为解决方案(一)。
解决方案(一)
直接将原项目文件夹中所有文件复制到新文件夹中,无需进行其它操作。
在 Git Bash 中进入项目文件夹(或在项目文件夹下打开 Git Bash),确认以下命令是否可以使用:
hexo -v
可查看hexo及其它依赖包的版本
hexo g
生成博客内容
hexo s
本地部署
hexo d
部署至云端
若此时已可正常生成和部署博客,则无需关注解决方案(二)。
解决方案(二)
复制所需文件至新电脑的项目文件夹中
复制原项目文件夹下的部分文件夹和文件至新项目文件夹中:
文件/文件夹名 | 是否复制 | 说明 |
---|---|---|
.deploy_git/ |
可选是否复制 |
该文件夹下存储了一些与git部署相关的信息,若不复制,在执行 hexo d 时会重新生成。但博主由于未复制该文件夹,导致部署时原来的所有提交记录被覆盖,所以还是建议复制。 |
node_modules/ | 不用复制 | 该文件夹下存放了一些项目依赖包。 |
public/ | 不用复制 | 运行 hexo g 时会重新生成。 |
scaffolds/ | 需要复制 | 无 |
source/ | 需要复制 | 无 |
themes/ | 需要复制 | 无 |
.gitignore | 需要复制 | 无 |
_config.yml | 需要复制 | 无 |
db.json | 不用复制 | 运行 hexo g 时会重新生成。 |
package.json | 需要复制 | 该文件存储了项目的基本信息和依赖信息等。 |
package-lock.json | 可选是否复制 | 若想要保持各个项目依赖包版本不变,可复制该文件。该文件的作用可参考链接1和链接2。 |
_config.butterfly.yml | 需要复制(如有) | 主题配置文件,因为博主使用了butterfly主题,所以有该文件。 |
安装依赖包
在 Git Bash 中进入项目文件夹(或在项目文件夹下打开 Git Bash),运行 npm install
命令(注意路径需为项目文件夹),会自动根据 package.json 和 package-lock.json(如有)文件中的内容安装依赖包。
博主在该过程中遇到一些漏洞警告,使用指令 npm audit fix
和 npm audit fix --force
后未能完全解决问题,删除package-lock.json文件后重新进行安装也遇到问题。观察后发现主要问题集中在 hexo-renderer-jade 和 hexo-renderer-markdown-it-plus 中,前者已经被 hexo-renderer-pug 替代,可以不安装,后者则根据 Butterfly 主题的安装文档修改为使用 hexo-renderer-markdown-it。
如在执行安装指令后想重新安装依赖包,则可删除 node_modules 文件夹及其内容,并使用 npm cache clean --force 清理缓存。再重新运行安装指令进行安装。
安装好依赖包后,可使用 hexo g
和 hexo s
指令进行测试,若可正常生成博客和本地部署,则说明安装成功。
注意使用该解决方案后,使用 hexo d
指令进行部署可能造成Github仓库中的历史提交记录被覆盖,因为部署时会执行 git push xxx --force
。建议做好备份。若在复制文件时复制了.deploy_git/,则可能不会有该问题。
参考: