使用 GitHub Actions 自动部署 Vite React 项目到 GitHub Pages
本文将介绍如何在 Vite 的 React 项目中,使用 GitHub Actions 自动化构建和部署到 GitHub Pages。
1. 启用 GitHub Pages
在开始配置之前,首先需要确保你的 GitHub 仓库已经启用了 GitHub Pages。
- 进入你的 GitHub 仓库,点击 Settings。
- 在左侧菜单中选择 Pages。
- 在 Source 部分,选择
GitHub Actions
作为部署来源。
这一步确保了 GitHub Pages 准备好接收来自 GitHub Actions 的部署。
2. 配置 Vite 项目
2.1. 配置 vite.config.js
为了确保 Vite 能正确地处理应用的路径,你需要在项目的 vite.config.js
文件中配置 base
选项。base
选项用于指定项目在 GitHub Pages 上的根路径。
// vite.config.js
export default {
base: '/your-repo-name/', // 替换为你的仓库名称
// 其他配置项
}
注意:如果你的仓库名称为
my-app
,则base
应该设为/my-app/
。
3. 创建 GitHub Actions 工作流
接下来,你需要创建一个 GitHub Actions 工作流文件,用于在每次代码提交时自动构建并部署你的应用。
3.1. 创建工作流文件
在项目的根目录下创建 .github/workflows/deploy.yml
文件,并添加以下内容:
name: Deploy to GitHub Pages
on:
push:
branches:
- main # 当推送到 main 分支时触发
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '16' # 使用 Node.js 16
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist # Vite 默认生成的目录
3.2. 工作流解读
on.push.branches
: 设定当main
分支有推送时,触发工作流。jobs.build-deploy.runs-on
: 指定工作流运行在最新的 Ubuntu 环境上。steps
:actions/checkout@v2
: 检出当前仓库代码。actions/setup-node@v2
: 配置 Node.js 环境,这里使用 Node.js 16 版本。run: npm install
: 安装项目依赖。run: npm run build
: 构建项目,生成静态文件。peaceiris/actions-gh-pages@v3
: 将生成的静态文件部署到 GitHub Pages。
4. 推送代码并触发工作流
完成上述步骤后,当你推送代码到 main
分支时,GitHub Actions 会自动执行工作流,构建项目并将其部署到 GitHub Pages。
5. 验证部署
部署完成后,你可以通过以下 URL 访问你部署的应用:
https://<your-username>.github.io/<your-repo-name>/
例如,如果你的 GitHub 用户名是 octocat
,仓库名称是 my-app
,则可以通过 https://octocat.github.io/my-app/
访问。
6. 可能遇到的问题及解决方案
6.1. 页面路径问题
如果你的项目没有正确显示页面,检查 vite.config.js
中的 base
配置是否正确。如果网站根目录为 /
,则可以将 base
设为 '/'
,或者直接忽略 base
选项。
6.2. 部署目录问题
确保 deploy.yml
中的 publish_dir
参数与 Vite 构建后生成的目录一致。默认情况下,Vite 的输出目录是 ./dist
。
总结
通过上述步骤,你已经成功配置了 GitHub Actions,用于自动构建和部署 Vite 的 React 项目到 GitHub Pages。这个自动化流程可以帮助你减少手动操作,确保每次代码提交后都能自动部署最新版本的应用。
希望这篇文档能帮助你顺利实现项目的自动化部署。Happy coding! 🎉