# 使用 GitHub Pages & GitHub Actions 部署前端项目(以 React 为例)
# 1.在 GitHub 上托管项目
像这样 --> react-demo-deploy (opens new window)
# 2.生成自动部署所依赖的 personal access token
登陆 GitHub ,点击头像下的 setting
点击 Developer settings
点击 Personal access tokens > generate new token
给 token 起个名字,随后勾选下方的全部选项,点击生成
复制生成的 token 并妥善保管 此处需要注意的是,这个 token 有很高的你的账号的访问权限,因此千万不能泄露给别人,并且在刷新这个页面之后就不会再显示出来了
回到你的仓库,依次点击 Settings > Secrets > New secret
将 name 设置为 DEPLOY_KEY,并将刚才复制的 token 粘贴在下方
添加 Personal access token 成功
# 3.添加 ssh-key 到你的 GitHub 账号
有两个选择,一种是生成 key 之后直接添加的账户的 ssh-key,另一种是只添加到当前仓库的 Deploy keys 中,我们以第一种为例 这两者的区别参考 --> github 上的账户的 SSH keys 与仓库的 Deploy keys 有何区别 (opens new window)
ssh-keygen
# 无限回车
cat ~/.ssh/id_rsa.pub
# 将输出粘贴至github的ssh-key管理中(https://github.com/settings/keys)
2
3
4
# 4.项目中添加 GitHub Actions 配置
在项目根目录下添加.github/workflows/deploy.yml
文件,内容如下
name: Publish to Github Pages
on:
push:
branches:
- master
jobs:
build-deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
# 安装依赖
- run: npm ci
# 打包
- run: npm run build
# 部署
- name: Deploy
uses: peaceiris/actions-gh-pages@v2.5.0
env:
PERSONAL_TOKEN: ${{ secrets.DEPLOY_KEY }}
PUBLISH_BRANCH: gh-pages
# 生成文件的目录
PUBLISH_DIR: ./build
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 5.修改 homepage
在 package.json 中添加homepage
字段,值为https://baibai-lee.github.io/<your repositorie name>/
# 6.提交代码并检测是否部署成功
做完以上工作后就可以提交你的代码,GitHub Actions 会自动执行并将项目进行部署
回到仓库,点击 Actions > Publish to Github Pages,找到你这次的提交,检查任务是否成功执行
点击 Settings > Options 往下翻,查看 GitHub Pages 是否成功添加
如果一切顺利,就可以看到你的项目啦 --> https://baibai-lee.github.io/react-demo-deploy/ (opens new window)
# 可能存在的坑
- 假如你的项目使用 yarn 进行包管理,在 GitHub Actions 中会出现错误,这个时候取巧一点的办法是,在本地执行以下
npm i
生成一下package-lock.json
,再提交代码;一了百了的办法是直接把包管理器换成 npm