hexo恢复搭建
写下这篇博客,主要用于记录自己搭建博客过程,以后重装系统后有一个参考的恢复方向(已经干掉重新来了好几次,每次都要找资料,猝),而且,不得不说,windows系统,C盘没100G(现在300G都不够)真的用不了多久,不知道是不是只有我是这样!!😭😭😭😭
1.提前准备
安装 Hexo
相当简单,只需要先安装下列应用程序即可:
可以点击上面的链接进去官网下载,git下载慢的可以去淘宝源。这里我分享我目前用的版本:
安装过程不再详细说明,简单的全选下一步就行,安装的位置自己喜欢放哪里就放哪里呗(doge)
2.查看npm(cnpm)
1 | (Win+R)运行 ---> cmd |
查看版本:
node -v
npm -v
3.安装hexo
1 | npm install -g hexo-cli |
如果国内的比较慢,安装淘宝源cnpm,之后再在cmd中安装::
npm install -g cnpm --registry=http://registry.npm.taobao.org
cnpm install -g hexo-cli
若发现淘宝源下载过程中出现卡死,则最好换回原服务器:
npm config delete registry
4.初始化hexo
选择一个空目录,用于本地部署,有内容的目录会报错
在目录里边用
Git bash
或者Powershell
,初始化hexo
1
hexo init
注意:如果你的git
版本比较高,如笔者使用的Git-2.31.1-64-bit
可能会报10054错误:
1 | INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git |
出现这个错误先检查下是否开了多个bash,比如:一个在运行hexo s
,一个在运行hexo init
,特别在重建博客的时候这个问题最常见,最简单的解决方法就是关掉其他的bash。
当然如果问题还没解决,可以尝试把SSL认证关掉:
1 | git config --global http.sslVerify "false" |
如果还是不行,那就不清楚原因了,我之后挂了个代理再重新hexo init
一次问题就解决了,也有可能是github抽风了。
2021.12.7 10053 错误
这次重建的时候报10053错误了,如下:
虽然不理会它也可以搭建,不过会少10-15个左右的包,后期装上就好,网上说是Git默认限制推送的大小的原因,只要运行命令更改限制大小,增加缓冲:
1 | git config --global http.postBuffer 524288000 |
但是我试了之后不管用,就算我把网络验证关掉了,也不管用,最后还是挂了个梯子解决了
初始化完成之后使用hexo g
、再hexo s
,如果弹出默认主题初始页,则说明本地初始化成功了!
6.部署到远端
6.1创建SSH密钥
打开gitbash
,配置本机用户名和邮箱,生成SSH密钥
1 | git config --global user.name "yourname" |
生成密钥过程所有的提问全部回车就行
生成的密钥文件放在:C:\Users\(你计算机的当前用户名)\.ssh
中
其中pub结尾的为公钥,用记事本打开复制里面的所有内容
6.2将密钥放在远端
注册Github或者Gitee账号,将复制的公钥添加进SSH中
Setting —> SSh
6.3创建仓库
同时勾上这个
如果是Github的话,仓库地址需要这样写:用户名.github.io
,通常用户名和下图的Owner一致,如:
6.4 配置_comfig.yml
仓库创建好之后,复制仓库地址建议使用SSH(github、gitee都一样的操作)
打开hexo
主目录下的_comfig.yml
,在最后,修改:
1 | # Deployment |
注意:
如果你打开文件只看到type
,没有repo
和branch
,自己加上就行了,注意属性名和属性值之间的空格,如type
和'git'
中间是有空格的,另外type属性的两个单引号,不要去掉!!
对于Github,建议repo使用SSH链接,不建议使用HTTP链接,尤其是在当你使用代理的时候,hexo d命令可能会报错:
想要解决也很简单:
- 使用SSH链接
- 不使用代理
7.安装hexo deployer
推进远端
回到git bash
或者powershell
,安装hexo deployer
1 | cnpm install --save hexo-deployer-git |
然后推到远端:
1 | hexo d |
这一步Github可能会弹出对话框OpenSSH
甚至是提示登陆的窗口:
注意:
如果遇到这种情况:
1 | fatal: unable to access 'https://github.com/ArgentoAskia2/ArgentoAskia2.github.io.git/': Could not resolve host: github.com |
或者
1 | error: RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054 |
造成上面的情况有很多原因,如果是github
,最常见就是github
抽风了,访问不了,尝试多几次hexo
三连就好。
如果还不行的话,使用代理再尝试吧,国内没办法
2021.12.7 多keygen情况下,hexo d未指定user.name和user.email问题
如果电脑配置了多个密钥,那么在提交过程中可能会出现,未指定全局user.name和user.email的问题
最后面的Everything up-to-date的意思就是当前文件时最新的。出现这个的时候,你在Github不会看到有任何的Commit记录,它只会把当前的分支master和远端的master分支进行同步,所以如果你对source文件夹里面的文章进行了增删改的话,也会同步到远端分支,但是不会留下任何的commit记录(不知道我这样描述的对不对,我特地把某篇文章删了,然后重新hexo d,上去github一文章真的没有了,但是没有任何commit记录)
因为Git在提交的时候需要user.name和user.email来确定提交者,所以这个问题也很好解决,只要指定全局user.name和user.email就可以了(指令在图的Run后面),但是在指定的时候需要注意user.name和user.email的填写,尤其是在本机配置了多个密钥的情况下,一定要写对,因为官方是根据user.email来定位你在Github中的账户的(具体见Github的Setting—->email),如果你写错了user.email和user.name,而且还是在同一台机器上,那么在Github的部署仓库那边,贡献者那一栏就不是你了😭😭😭😭,如下图:
然后,最最最搞笑的是,第二次改user.email和user.name的时候还输错了,输了个无效的邮箱,于是发生和这位知乎上的兄弟一模一样的经历:GitHub用户识别机制
千辛万苦之后(指折腾了4个小时),终于搞定好了,为了纪念,就不删另一个账号的贡献者!
8.最后的一步
对于Github的朋友,你们的小窝估计已经搭好了,访问地址一般都是用户名.github.io
而对于Gitee的朋友,你们还需要部署GiteePage
开启服务之后,这个就是你的博客地址啦,可以通过这个来访问!
如果想要绑定域名的话可以参考这篇文章:hexo博客绑定域名
9.一些问题解决方法参考
在这里你可以寻找到一些使用hexo
时出现问题的解决方案!
更改了Node.js环境之后如何恢复hexo?
如果你的Node.js
变更了,比如进行版本更新,移动了Node.js
的位置等,则可能会导致hexo
指令无法找到问题:
1 | bash: hexo: command not found |
如果之前层使用过hexo
的指令,则默认情况下在博客的根目录下会有一个node_modules
文件夹:
在这个文件夹内,有一个.bin
目录,我们之前直接运行的hexo
指令就存放在这里:
我们只要把这个写到环境变量中即可。
其实上面的问题不仅仅出现于Node.js
的改变,理论上只要git
进行了改变,基本上都会出现这个问题,可能有兄弟会发现,我们刚刚安装完hexo
的时候基本上只能使用git
来运行hexo clean、hexo g、hexo d
等指令,使用cmd
无法运行,原因就是当我们安装完hexo
的时候,只往git
的PATH
环境变量中写入了上面的hexo
的运行路径,而当前windows
系统的却没有,所以无法使用CMD
运行