Hexo 向其他电脑迁移并升级

Hexo 使用算是比较方便,唯一问题是迁移操作非常麻烦,尤其是迁移时升级版本更麻烦,现在就做一篇总结性文章以作备忘。

准备工作

如果原工作目录刚刚安装 hexo,那么一般直接把原工作目录直接复制到新的电脑合适的地方就好,只要 node.js 和 hexo-cli 安装没问题就不会什么大问题。但是,更常见的情况是,博客已经写了很久,而且原有的博客工作系统普遍比较陈旧,这个时候想要迁移就比较麻烦。

一般情况下,如果没有太多的自定义设置而且以下文件足以:

  • source 目录下的文件,尤其是 _post 和 _draft 目录是实际的博客文章和草稿
  • 工作目录下的 _config.yaml 文件
  • 工作目录下的 package.json 文件
  • 如果需要使用原有主题,则还有 themes 目录

注意

  • 如果原博客中有自定义的上传文件(比如 avatar、favicon 等),就要参阅新版本的 hexo 文档,确认正确的放置位置和配置参数
  • 在 100% 确定没有问题之前,一定不要删除旧工作目录下的任何一个文件
  • 如果在很久之前有过自定义模板,不推荐直接复制 scaffolds 目录中的文件,新版本可能会有变化

然后,检查旧的 package.json 文件和主题配置文件,列出自己添加的插件和功能。

首先,在新机器上下载 node.js(推荐使用 Scoop),然后全局安装 hexo-cli:

1
npm install hexo-cli -g

然后,在新的博客出新建 hexo 工作目录,并切换到这个目录下:

1
2
hexo init blog
cd blog

在工作目录中安装 npm 包:

1
npm install

此时,推荐本地测试一下新安装后默认的示例博客,查看安装是否成功:

1
hexo server

迁移

Hexo 的配置文件不算集中,而且升级会发生变化,所以迁移操作最好不要一次完成,至少要大体分为迁移插件、主题和博客内容三部分。

参考对比新旧目录中的 package.json 文件,在新的工作目录中安装对应插件,比如:

1
npm install hexo-deployer-git --save

注意:如果安装中有提示需要进行 audit 操作,则可以中断并进行如此操作,如果解决不了就报给相应的插件维护者,然后记录下出问题的插件继续安装,方便之后出错了进行卸载等修复工作。

然后,根据插件再比对新旧 _config.yaml 文件,参照新版本的说明文档或者 wiki 进行配置修改。在配置修改完成后,不要着急复制原博客文章,再本地测试新博客是否能够正确显示。

比较复杂的插件,如果不确定其稳定性和兼容性,可以先配置其他简单的插件,然后控制变量逐步确认安装无误,也方便确定问题范围。

在之前的操作都没有问题之后,再删除示例博客,复制原有的博客文章到新的目录中,然后进行本地测试。记得测试之前先清除旧缓存:

1
hexo clean

然后,再进行测试:

1
2
hexo generate
hexo server

注意

  • 如果文章有自定义格式,以及依赖一些旧主题的功能,最好先不要复制
  • 关注错误信息,可能有漏掉的插件需要安装

主题的更新可能会比较频繁(比如 next 主题),而且有时新版本主题的配置会发生较大的变化。一般不推荐直接使用 git clone 的方式获取主题文件,直接去 release 页面下载已经打好 tag 的版本更好些,也能更方便的比对更新的内容。比如:next 更新到 7.+ 版本后配置文件就发生了很大的变化,就要根据自身情况觉得是否要下载最新版,如果直接使用 git clone 那就很难分辨和选择了。

在这一步中,最重要的是主题如果使用了一些第三方功能,那么最好先关闭或者不要进行配置,尽量一步步的确定配置没有问题,反复进行本地测试。比如;,部分第三方的搜索插件就应该最后进行测试。

部署

在部署之前,使用最终的本地测试结果和原有的部署到服务器的博客进行对比,查看:

  • 文章内容是否缺失
  • 标签和归档是否正常
  • 显示效果是否符合预期