hexo的迁移与配置

hexo的迁移与配置
Xiao Qi<>
参考教程
0 情景导入
换了一台电脑,将旧电脑的Hexo博客写作环境迁移到新电脑上。
1 Git下载及配置
- 从官网Git下载git并安装,下面设置无密push+pull;
- 打开
git bash,在用户主目录(其他目录也可)下运行:ssh-keygen -t rsa -C "youremail@example.com"把其中的邮件地址换成自己的邮件地址,然后一路回车; - 最后完成后,会在用户主目录下生成.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH key密钥对,id_rsa是私钥,千万不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人;
- 登陆GitHub,打开「Settings」->「SSH and GPG keys」,然后点击「new SSH key」,填上任意Title, 在Key文本框里粘贴公钥id_rsa.pub文件的内容(千万不要粘贴成私钥了!),最后点击[Add SSH Key],你就应该看到已经添加的Key。
- 注意:不要在git版本库中运行ssh,然后又将它提交,这样就把密码泄露出去了
2 安装Node.js
1.Hexo基于Node.js,Node.js下载地址:Download|Node.js下载安装包,注意安装Node.js会包含环境变量及npm的安装,安装后,检测Node.js是否安装成功,在命令行中输入 node -v;
2.检测npm是否安装成功,在命令行中输入npm-v
3 安装Hexo
新建文件夹四,在此文件夹内使用npm命令全局安装Hexo,输入:
1 | npm install -g hexo-cli |
输入 hexo -v检查是否安装成功。
如果安装速度慢可以修改npm源。npm下载各种模块,默认是从国处服务器下载,速度较慢,建议配置成淘宝镜像。打开CMD窗口,运行如下命令:
1 | npm config set registry https://registry.npm.taobao.org |
4 复制原电脑上的数据
需要复制的
_config.yml:站点配置
_config.anzhiyu.yml:主题配置文件,为了方便主题升级剥离出来的配置文件
package.json:说明使用那些依赖包
scaffolds:文章的模板
source:自己写的博客文件
themes:主题文件夹(魔改都在里面)
.gitignore:限定在提交的时候哪些文件可以忽略需要删除的
.git:无论是在站点根目录下,还是主题目录下的.git文件,都可以删掉。
node_modules:在用npm instal1会重新生成
public:hexo g会重新编译生成
.deploy_git:在使用hexo d时也会重新生成
db.json文件:hexo s快速启动所需的数据库
package-lock.json:记录依赖之间的内部依赖关系,可以根据package.json重新生成
其实上面这些文件也就是.gitignore文件里面记载的可以忽略的内容。
5 npm install
在git bash中切换口目录到新拷贝的文件夹里,使用npm instal1 命令,进行模块安装。很明显我们这里没用hexo init初始化,因为有的文件我们已经拷贝生成过来了,所以不必用hexo init 去整体初始化,如果不慎在此时用了hexo init,则站点的配置文件_config.yml里面内容会被清空使用默认值,所以这一步一定要慎重,不要用hexo init。
6 安装其他必要组件
1 | npm install hexo-deployer-git --save #为了使用hexo d来部署到git上 |
插件安装后,有的需要对配置文件_config.yml进行配置,具体怎么配置,可以参考上面插件在github主页上的具体说明
7 验证
首先本地执行,在博客根目录下执行:
1 | hexo cl |
此时可访问浏览器:http://localhost:4000/,查看是否转移成功。
当本地能成功启动,之后就可以部署到Github,执行以下代码:
1 | hexo cl; hexo ge; hexo d |
如果出现Deploy done,则说明部署成功,稍等两分钟,打开浏览器访问之前的域名就可以看到之前的博客,以后你可以在这台新电脑上魔改和写文章了~
如果出错
在线访问出错,无法访问。开始排查:
- .deploy_git文件夹内的文件大小均为0kb,也就是生成了一些空文件;
- public文件夹内的文件大小均为Okb,但是本地可以正常访问,不知道为啥
1
2
3
4
5Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
INFO(node:23336) Warning: Accessing non-existent property 'lineno' of module export...
(Use node --trace-warningsto show where the warning was created)
...
...解决方法:
Node版本太高,切换一个低版本Node可以(我这里是14.17.6切换成12.5.0就没有这个问题了) - 问题已解决,可以在线访问博客了。



