本文是对于hexo博客自动化部署实现的总结,关于这几个是什么我就不多比比了网上文章多的是。这里我将从hexo搭建到travis部署所遇到过的问题一一列举出来,希望对其他小伙伴有帮助。
一、Hexo的搭建
hexo项目搭建除了网的问题,可能会遇到的坑的就是在切换主题的时候需要注意是否下载了正确的主题文件。我遇到过按文档切换主题但是根本没有相关资源文件,但是页面又是新主题构建的结果就很迷。。还有一定要注意_config.yml文件里面的各项配置冒号后面是要有空格的,且需要下载hexo-deployer-git包,这些在hexo文档中都有写。
二、Travis服务
1.开始之前
说这块之前先要点一下,Travis服务的网址有两个一个是https://travis-ci.org/,另一个是https://travis-ci.com/,虽然两者页面很相似但是完全不是同一个东西,前者只能包含github的public库,后者除了公开的私有的也是可以的但似乎要加钱。我们可以在github上对两个都赋权但是其服务是不想通的,所以一定要确认用的是哪一个。
我这里是用的https://travis-ci.org/两个我都尝试过,感觉https://travis-ci.com的构建速度好像要快一点。但我的Travis登陆网址始终指向的是https://travis-ci.org最终无赖还是用了前者(关于登陆是在windows本地登陆travis并对github秘钥加密,后面会有文档链接对具体操作说明)。不过最终对比了一下两者的时间差比较小还是能接受的。
2.注意事项
关于travis具体怎么用请查看文档用 Travis CI 自动部署 hexo,作者说的很清楚,我这里有几个点需要补充。
- 文中提到的gh-page,我觉得应该是gh-pages。这个在hexo文章《一键部署》中提到过,是指将需要构建好的代码推送到github库中的哪一条分支。当然gh-page可能也能用,没有具体测试。我采取的是按照文档来的。PS:下图粗略解释一下gh-pages用来干嘛的。
- gem install travis需要在本地安装ruby才可以使用,这个也简单网上教程很多。
- 关于travis对于github的私钥加密。这个地方就有点麻烦了,经过趟坑和查阅资料发现加密过程需要在linux环境下才行不然在travis云环境下解密系统后台会报错"iv undefined"。这里有服务器的可以在服务器拉一下项目并操作,没有的可能就找人帮忙或者装个虚拟机??
- node.js 版本,因为参考文档年代的原因那个node的版本有点老(写的4 ),配置的时候需要改为12反正只要是大于8就行。这里是为了确保yuque-hexo运行时不报错,也是一个需要注意的点。
- 还要另外一些必要的配置,防止报错。
- 添加hexo-util依赖:npm install --save-dev hexo-util
- 在package.json中增加命令行语句
"deploy": "npm run sync && hexo clean && hexo g -d"
基本上注意这些就不会再有严重的问题,如果有什么不确定的话可以看看作者提供的源码和自己的配置做对比。
三、yuque-hexo和serverless
关于这两部分参考Hexo 博客终极玩法:云端写作,自动部署,我也只说一下可能会遇到的问题和需要注意的事项,并附上相关解决方案。
1.yuque-hexo配置
在修改package.json这一部分,login和repo要看自己具体的信息。login就是你的语雀登陆名,这个在语雀官网->账户信息->账户管理->个人路径中可以看到。repo就是你的仓库名,这个名字不一定取什么就是什么,要在知识库->设置->知识库信息中确认(还是看路径,以路径为准)。
除此之外还需要添加token字段,添加方式可以看下图。
附上我的最终结果
2.serverless配置
serverless没有什么大问题,但是想提醒以下几点:
- 自己的拉取和推送分支是哪一个。比如我的拉取不是master而是main,我的推送(这个看tiggerTravisCI函数)也不是master而是gh-pages。
- travis用的是org还是com,这个上一个小节中说过。文档中用的是org,要看看自己用的是什么。
另外就是,注意分支展示的控制。比如我博客项目github上有两条分支,一个是main为源代码另一个gh-pages,gh-pages是travis云服务打包之后的结果,那么我将这个分支作为github.io页面的展示时还需要在setting中切换一下。
四、最后
以上就是本次总结的全部内容之前就想弄博客的但是还是懒一直没搞,趁着最近稍微闲下来终于搞定了。花了几天时间有一些文档时间比较久可能配置或者内容需要有所改变,整体还比较简单没有什么复杂的内容。不过这里吐槽一下度娘。。。。遇到坑去查的时候搜出来的东西真的五花八门太浪费时间了还是科学上网好一点。最后希望这篇文章可以帮助到遇到相似问题的同学们。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。