hexo博客使用Github Action自动部署
Hexo 博客的Github Action自动化部署是什么?
简单说,就是把hexo博客的源代码上传到github代码仓库,github在代码发生变动的时候,自动通过安装一系列nodejs环境和相关依赖,生成html页面到github pages仓库。
再简单点说,就是把本地生成博客的工作,全部交给github执行。
总体步骤:
1. 使用Github令牌部署hexo博客
2. Github新建一个私有仓库,并上传hexo博客源码
3. 配置Github Action实现自动化部署
使用Github令牌部署hexo博客
登陆GitHub
,右上角Settings
,
设置界面左下`Developer settings -- Personal access tokens -- Generate new token`,
创建一个全权限的`token`,名称随意,
记录好此token。
更改根目录配置deploy的仓库地址
在Hexo博客根目录下打开_config.yml
找到
1 | # Deployment |
修改成
1 | # Deployment |
Github新建一个私有仓库,并上传hexo博客源码
创建私有库
上传hexo博客源码,在博客源码中删除.git
文件夹(隐藏文件夹),删除themes
里面主题目录.git
文件夹
提交完毕后,仓库代码如上图
配置Github Action实现自动化部署
新建workflow
点击博客源码仓库的Action
配置action,代码如下(记得修改自己的地址):
1 | name: blogDeploy # 部署 |
查看状态
点击action即可看到部署状态
这样就代表自动部署成功了。
注意
branch: master
自己部署的时候创建的xxx.github.io
目录默认branch: main
,要自己创建一个branch: master
设为默认,
或者等自动部署完成后,把master
设为默认,删除main
Github Actions里面的# 触发条件 后面的main
Github Actions里面的`# 触发条件 后面的main(这里的分支名很重要,不要弄错了,这里main指的是Hexo源库的branch)`
缺少package-lock.json
package-lock.json作用:
主要解决问题场景:
前景:
比如你的packgae.json的依赖是”react”: “^17.0.2”,因为有标识符^,所以如果react模块有在17大版本下更新的小版本17.0.3,npm install时候会自动安装17下的最新版本17.0.3
现象:
在前景情况下,你本地是”react”: “^17.0.2”,如果这时候react更新”react”: “^17.0.3”,别人npm install的时候,安装就是”react”: “^17.0.3”。这样导致你们版本不一致,可能引起一些相关错误。
解决:
package-lock.json:简单来说就是锁定安装模块的版本号。
就是在npm install的时候,记录各个模块的版本信息和下载路径,这样别人拉项目npm install时候, 就会依据packgae-lock.json去安装”react”: “^17.0.2”,保证大家依赖一致并且安装模块速度也能提高。
注意点:
1.npm安装,没有package-lock.json文件,如果npm版本是5+,会自动生成package-lock.json。有的话会默认依据该文件进行安装而不是package.json。cnpm不支持(忽略)依据package-lock.json文件安装模块,默认依赖package.json进行安装。
2.需要更新版本,得去更新package.json里的模块版本,然后npm install,才能同步更新到package-lock.json
3.该功能基于npm5+
参考
参考了heson大佬的文章和方法黑石博客 - 利用Github Action实现hexo博客的自动部署