使用"hexo d"上传至github利用GitHub Actions部署静态网站
前言
Hexo博客的部署方式多种多样,对于大多数个人用户而言,使用 hexo d 命令配合 hexo-deployer-git 插件是最经典、最直接的方式。这种方式将本地生成的静态文件直接推送到GitHub仓库的特定分支,再由GitHub Pages提供服务,省去了配置复杂的CI/CD流程,简单且高效。
本文将优先介绍如何在Windows环境下使用Scoop安装高性能包管理器pnpm,并详细讲解如何配置SSH密钥与 _config.yml 实现无密码一键部署。
一、 环境准备:使用Scoop安装pnpm
pnpm以其快速的安装速度和节省磁盘空间的特性,成为替代npm的理想选择。在Windows平台,推荐使用Scoop进行命令行安装。
1.1 安装Scoop
如果尚未安装Scoop,请按以下步骤操作:
打开 PowerShell(建议以管理员身份运行)。
设置执行策略以允许脚本运行:
1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
执行安装命令:
1
irm get.scoop.sh | iex
等待下载安装完成后,即可使用Scoop。
1.2 使用Scoop安装pnpm
Scoop安装完成后,只需一条指令即可完成pnpm的安装,无需手动配置环境变量:
1 | scoop install pnpm |
安装完成后,输入 pnpm -v 验证是否安装成功。
二、 Hexo项目配置
2.1 初始化项目与安装依赖
确保本地已安装Node.js环境。使用pnpm初始化Hexo项目:
1 | # 安装Hexo框架 |
2.2 安装部署插件
核心步骤是安装 hexo-deployer-git 插件。该插件能够将Hexo生成的静态文件自动推送到Git仓库。
1 | pnpm add hexo-deployer-git |
三、 配置 _config.yml 实现一键部署
3.1 获取仓库地址
在GitHub上创建一个仓库(例如 username.github.io)。为了后续配置SSH连接,请准备好仓库的SSH地址,格式通常为 git@github.com:username/username.github.io.git。
3.2 配置SSH Key连接GitHub
为了避免每次执行 hexo d 时都需要输入GitHub的用户名和密码(或Token),强烈建议配置SSH Key实现免密推送。
1. 检查现有密钥
打开 Git Bash 或 PowerShell,输入以下命令查看是否已有密钥:
1 | ls ~/.ssh |
如果看到 id_ed25519 或 id_rsa 文件,说明已有密钥,可直接跳到第3步。如果提示目录不存在,请继续第2步。
2. 生成新的SSH密钥
输入以下命令生成密钥(将邮箱替换为你的GitHub注册邮箱):
1 | ssh-keygen -t ed25519 -C "your_email@example.com" |
注:如果系统不支持 ed25519,可使用 ssh-keygen -t rsa -b 4096。
一路按回车键使用默认设置(文件保存路径、密码留空)。生成成功后,会在用户主目录下创建 .ssh 文件夹。
3. 添加公钥到GitHub
- 复制公钥内容:
在终端输入以下命令查看公钥,并完整复制输出的内容:1
2
3cat ~/.ssh/id_ed25519.pub
# 或者如果是旧版RSA
# cat ~/.ssh/id_rsa.pub - GitHub后台配置:
- 登录 GitHub,点击右上角头像 -> Settings。
- 在左侧菜单找到 SSH and GPG keys。
- 点击 New SSH key。
- Title 随意填写(如 “My Laptop”),Key type 选择 “Authentication Key”。
- 将刚才复制的公钥粘贴到 “Key” 文本框中,点击 Add SSH key。
4. 测试连接
在终端输入以下命令测试连接是否成功:
1 | ssh -T git@github.com |
如果看到 Hi username! You've successfully authenticated... 提示,说明SSH配置成功。
3.3 修改配置文件
打开站点根目录下的 _config.yml 文件,找到末尾的 deploy 字段。请务必使用SSH格式的仓库地址:
1 | # Deployment |
配置项关键点:
- repo: 这里必须填入刚才测试通过的SSH地址(以
git@github.com开头),而非https://开头的地址。 - branch: GitHub Pages目前默认部署源为
main分支,请根据你的仓库Settings -> Pages中的设置保持一致。
四、 部署与验证
4.1 执行部署命令
配置保存后,在Hexo根目录下执行以下命令:
1 | hexo clean && hexo g -d |
hexo clean: 清除缓存。hexo g: 生成静态文件。-d: 部署到远程仓库。
由于我们配置了SSH Key,过程中应该不会弹出输入密码的提示,直接显示推送进度,直到出现 Deploy done: git 即为成功。
4.2 GitHub Pages 设置
部署完成后,登录GitHub仓库:
- 进入 Settings -> Pages。
- 确认 Build and deployment -> Source 选择的是 Deploy from a branch。
- 确认分支为你刚才推送的分支(如
main),目录为/ (root)。
稍等片刻,访问 https://你的用户名.github.io 即可看到博客内容。
五、 总结
通过配置SSH Key,我们解决了HTTPS方式频繁验证身份的烦恼,配合 hexo-deployer-git 插件,实现了真正意义上的本地“一键部署”。这种方式不仅安全便捷,而且是目前Hexo用户最推荐的标准化工作流。
