如何移植hexo到新的设备上

关于更换机器后如何移植hexo的简述

最近新入手一个电脑,想把整个博客都移植到新电脑上编辑操作,看了很多教程后大概明白了步骤,可能是因为都是静态文件的原因,搬起来还挺简单的,似乎即使新设备是mac系统一样可以这么操作。以下是具体步骤:

1.给新设备安装Git和Node.js,这个是必须得有的。

2.给新设备添加SSH密钥。打开Git Bash:
虽然新设备肯定是没有SSH了,不过这里为完备起见,可用下面的方法检测本机器已经拥有的的SSH:
$ ls -al ~/.ssh
如果终端输出的是:
cannot access ... No such file or directory
那么就说明本地没有SSH key
如果显示出一堆 id_rsa 和 id_rsa.pub文件的存在以及它们的创建日期,就说明此设备存在SSH,需要考虑移除该设备的SSH。简单来说就是直接把C:\Users\机器用户名\ 下的.ssh文件夹里的id_rsa 和 id_rsa.pub给删了就行了。

好的现在开始正式创建SSH key,Git Bash里输入:
$ ssh-keygen -t rsa -C "你的GitHub邮箱地址"
然后三次回车键(跳过passphrase口令,即给SSH本身设置一个保护密码,相当于二道锁,建议跳过),就在用户目录生成了一个名为.ssh的文件夹,里面有id_rsa和id_rsa.pub两个文件,用户目录就是C:\Users\XXX这里。ssh文件可以备份一下,登录Github的用户界面,找到Settings里面的SSH and GPG keys,里面可以看到旧的ssh密钥,点击new SSH key添加一个新的ssh密钥,Title可以自定义,内容填入记事本打开id_rsa.pub里的内容(开头为ssh-rsa后面跟着一大串字母)。点保存即可,旧的SSH也可以移除了。

可以测试一下ssh,在Git Bash里输入
$ ssh -T git@github.com(注意这里的邮箱地址就是git@github.com,并不是注册邮箱地址)
此时可能跳出一行host确认信息,直接输入yes,此时会看到:Hi <你的用户名>! You’ve successfully authenticated, but GitHub does not provide shell access.则表示配置成功。

接下来还需要配置
$ git config --global user.name 你的用户名(格式为”xxxxxx” 即github的登陆用户名,非昵称)
$ git config --global user.email 你的github邮箱地址(”xxx@xxx.com“ 即github注册邮箱)
这个不配置的话似乎会在hexo d的时候跳出”please tell me who are you”的问题。

3.接下来就是装hexo,打开Git Bash,输入
$ npm install hexo-cli -g
这步其实非常慢,回车键发现没反应需要等,等了N久都没用或者出错怎么办?可以强关Git,在Git里执行npm uninstall hexo卸载hexo(没装上的话这步是没用的,以防万一),然后在C:\Users\用户名\AppData\Roaming里把npm和npm-cache文件夹都删掉,这样让新设备回到安装前的初始状态,再尝试安装hexo。

有人说国内hexo的npm源有问题,经我测试是没有问题的,npm hexo的时候也没有挂梯子,正常安装即可。

4.这里我们确认hexo已经安装好了,就可以开始创建本地仓库。建议自己建一个路径简单的文件夹,这里注意一下,最好和旧设备的路径是一样的,比如我的是D:\Blog\Aetherial,空文件夹建好后,将旧博客的一些文件复制进来,这些文件是:

source/(博客文章内容)
theme/(博客主题)
scaffolds/(文章模板)
_config.yml(网站配置文件)
package.json(有关使用的包)
.gitignore(忽略选项)

其他文件不要复制进来。

上述文件都复制好以后,在git bash中cd到该目录:
$ cd /d/blog/aetherial(这是我的目录)
然后
$ npm install(注意,不是npm init)
这步安装完,大部工作就解决了。

5.为了使用hexo d还需要执行
$ npm install hexo-deployer-git --save
若博客还设置有RSS订阅还需
$ npm install hexo-generator-feed --save(这里认为config.yml里的配置都是正常的)

6.这样就彻底完成了。可以用本地预览服务先看一下:
$ hexo s -p 5555
这里的5555是自己随便定的端口名称,不同的程序使用的端口五花八门,有可能会出现端口占用冲突的问题,建议就5555。

7.本地预览能成功的话那基本就没啥问题了,可以尝试hexo clean、hexo g一遍,看看能否正常工作。最后新建一个测试用的博客文章,尝试hexo d,验证一下是否上传成功。刚移植完后第一次hexo d似乎要输入一遍Github的账号和密码确认,之后就不用了,因为已经添加了ssh密钥。

本地预览失败?重新检查步骤4以后的内容,特别是_config.yml里的内容是不是正确。

  • 版权声明: 本博客所有文章著作权归作者所有,禁止任何形式的转载。
  • Copyrights © 2019-2024 Caelica

请我喝杯咖啡吧~