macOS下Hexo博客恢复指南

2011年买的MacBook Pro用到今天已经是第七个年头,期间从未重新安装过系统,一直是升级或者更换硬盘后进行系统恢复,近期由于天朝网络问题,一度以为是系统出了毛病,于是决定重新安装macOS系统,然而系统重装完之后网络依然不好使,不得不佩服朝廷网控能力之强大。言归正传,下面正式讲述我在系统全新安装完后,恢复Hexo的历程,整个过程有点煎熬,虽然有效步骤不是很多,但是一次次出错却是让人揪心,现总结成文,望与我遇到同样问题的同学可以更方便的解决类似问题。

准备

  1. 由于我的系统有完整的备份,因此在重装时,就直接从备份将原博客文件夹拷贝到了新系统,恢复过程需要用到原始博客中的/source/themes/scaffolds三个文件夹以及_config.ymlpackage.json文件;

    source文件夹内包含了之前撰写的博文
    themes文件夹内是原始博文的主题文件
    scaffolds文件夹内是一些博文模板,如果之前有修改过模板,例如加入了博文密码、评论开关、置顶控制等相关字符,就需要保留这个文件夹
    _config.yml是博客配置文件
    package.json文件是原博客中安装的插件列表

    注:看了很多资料里面提到.gitignore文件也需要保留,这个文件是控制我们在hexo d时,那些文件需要上传到Github,一般很少人会修改,保持默认,因此一般不作保留,不过处于保险起见,也可以进行备份。

  2. macOS系统在安装完毕后记得安装Xcode,或者安装CommondLineTools,这个工具是必须的,其实安装Xcode的目的也是因为其附带了CommondLineTools,考虑到我在后期会用到xcode的其他功能,所以直接从AppStore安装了完整Xcode程序,接着在终端输入以下指令并运行:

    1
    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

    否则,在后续执行npm install的时候可能会出现xcode-select: error ...错误

  3. 下载安装Node.jsGit

Hexo恢复

  1. 安装完Node以及Git之后,在终端输入

    1
    npm install -g hexo-cli

    其中,-g表示全局安装,如果安装出错,就在前面加上sudo重试,我在安装的时候使用了sudo

  2. 新建博客文件夹blog,并cd进入

    1
    2
    mkdir blog   //新建博客文件夹
    cd blog //cd进入文件夹
  3. 执行Hexo初始化指令

    1
    hexo init

    执行完毕之后,在文件夹内会出现sourcethemesscaffolds_config.yml以及.gitignore等文件夹和文件。

  4. 原博客文件替换
    将原始博客的sourcethemes文件夹,_config.ymlpackage.json文件拷贝至新的博客文件夹内并进行替换。

    【注】在恢复过程中,最重要的几个文件就是本步骤提到需要替换的两个文件夹和两个文件,scaffolds文件夹和.gitignore文件是自动生成的,一般情况下不会去修改,所以对大部分人来说不重要,但是如果修改过模板,那么scaffolds文件夹也需要替换。当然,为了保险起见,将这两份文件一并进行修改也是可以的。

    【Tip】macOS系统中,在Finder内显示隐藏文件可以使用快捷键Connamd+Shift+.来实现,再次使用该快捷键会使隐藏文件不显示。

  5. 安装原博客中的插件

    在终端cd到新的博客文件夹内,执行安装插件命令

    1
    npm install

    此时,程序会根据package.json文件中的插件列表进行自动安装。

    这一步对我来说是很悲催的,因为我的Hexo安装较早,期间也没有进行更新,所以在初始化Hexo后,安装的是新版的Hexo程序以及必要插件,而package.json中的插件列表是旧版本插件,出现了很多错误,无奈之下我采取的措施是在上面提到的Hexo初始化hexo init之后,没有替换package.json文件,而是打开旧package.json文件,一个个使用指令手动安装:

    1
    npm install --save 插件名

    其中,--save表示将该插件名称记录在package.json文件内,这也是为什么我们可以通过package.json文件来恢复之前安装的所有插件。

    编译和Deploy

    在完成了恢复之后,可以尝试执行hexo generate进行编译,看看是否会报错,一般会报错大多是由于插件的问题,可以根据错误提示Google查一下。
    如果没有错误,说明恢复成功,此时执行hexo s,在本地查看博客显示是否正确,最后执行hexo deploy上传Github或者Coding。

    【说明】由于博主在Github上搭建Hexo时,是直接在_config.yml文件内设置相关字段:

    1
    2
    3
    4
    deploy:
    - type: git
    repo: https://github.com/*****************
    branch: master

因此在hexo deploy后直接输入Github的账户和密码就可以进行提交,并没有配置SSH密钥。

Reference

在恢复过程中看了很多大神以及官方写的教程和说明,在此表示感谢,由于自己恢复时的情况特殊,软件长期未更新,导致报错连连,希望这篇文章对大家能有所帮助。

重装系统后,Hexo博客如何重新部署恢复
重启Hexo(1)-在Mac上安装Hexo
使用hexo,如果换了电脑怎么更新博客? - 知乎
DTraceProviderBindings.node issue
npm教程-更新本地包

cxjiang wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创分享,您的支持将鼓励我继续创作!