Hexo博客迁移

前言

在重装系统、换电脑等很多情况下需要对Hexo迁移,进行新部署。

这里有个前提,一定要把之前博客相关的本地文件夹保存起来,可以上传到git或者直接迁移。


正文

主要有两个步骤,安装配置所需环境(1-3)和部署博客,如果已经安装了相应环境可以直接跳转。

1.Git安装配置

从官网Git下载git,在新电脑上安装,因为https速度慢,而且每次都要输入口令,常用的是使用ssh。使用下面方法创建,也可以自己找教程:

  1. 打开git bash,在用户主目录下运行:

    1
    ssh-keygen -t rsa -C "youremail@xxx.com"

    把其中的邮件地址换成自己的邮件地址,然后一路回车。

  2. 完成后,会在用户主目录下生成.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH key密钥对,id_rsa是私钥,千万不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

  3. 登陆GitHub,打开「Settings」->「SSH and GPG keys」,然后点击「new SSH key」,填上任意Title,在Key文本框里粘贴公钥id_rsa.pub文件的内容(千万不要粘贴成私钥了!),最后点击「Add SSH Key」,你就应该看到已经添加的Key。

注意:不要在git版本库中运行ssh,然后又将它提交,这样就把密码泄露出去了。

2. 下载Node.js,并安装

3.安装Hexo

打开git bash客户端,输入

1
npm install hexo-cli -g

,开始安装hexo。

4.迁移原本的Hexo

下面就将原来的文件拷贝到新电脑中,但是要注意哪些文件是必须的,哪些文件是可以删除的。

  • 讨论下哪些文件是必须拷贝的:首先是之前自己修改的文件,像站点配置config.ymltheme文件夹里面的主题,以及source里面自己写的博客文件,这些肯定要拷贝的。除此之外,还有三个文件需要有,就是scaffolds文件夹(文章的模板)、package.json(说明使用哪些包)和.gitignore(限定在提交的时候哪些文件可以忽略)。其实,这三个文件不是我们修改的,所以即使丢失了,也没有关系,我们可以建立一个新的文件夹,然后在里面执行hexo init,就会生成这三个文件,我们只需要将它们拷贝过来使用即可。

总结:config.ymltheme/source/scaffolds/package.json.gitignore是需要拷贝的。

  • 再讨论下哪些文件是不必拷贝的,或者说可以删除的:首先是.git文件,无论是在站点根目录下,还是主题目录下的.git文件,都可以删掉。然后是文件夹node_modules(在用npm install会重新生成),public(这个在用hexo g时会重新生成),.deploy_git文件夹(在使用hexo d时也会重新生成),db.json文件。其实上面这些文件也就是.gitignore文件里面记载的可以忽略的内容。

总结:.git/node_modules/public/.deploy_git/db.json文件需要删除。

5.模块安装

git bash中切换目录到新拷贝的文件夹里,使用 npm install 命令,进行模块安装。很明显我们这里没用hexo init初始化,因为有的文件我们已经拷贝生成过来了,所以不必用hexo init去整体初始化,如果不慎在此时用了hexo init,则站点的配置文件_config.yml里面内容会被清空使用默认值,所以这一步一定要慎重,不要用hexo init

6.安装其他必要组件

  1. 为了使用hexo d来部署到git上,需要安装

    1
    npm install hexo-deployer-git --save
  2. 为了建立RSS订阅,需要安装

    1
    npm install hexo-generator-feed --save
  3. 为了建立站点地图,需要安装

    1
    npm install hexo-generator-sitemap --save

插件安装后,有的需要对配置文件_config.yml进行配置,具体可以参考上面插件在github主页上的具体说明

7.检验

使用hexo g生成静态文件,然后使用hexo d进行部署,如果都没有出错,就转移成功了。

结语

简单来说,就是将整个hexo的文件夹打包发送,然后重新安装模块就可以了。但是切记一定要保存好自己博客的配置和资源文件,否则是无法迁移的。