当前位置: 首页 > news >正文

基于 GitHub Actions 的零成本自动化部署:把 Vite/Vue3 项目一键发布到 GitHub Pages 的完整实战

1. 实现自动化部署

1.1. 创建 vue 项目

# 1. 安装/确认 Node.js(>=14)
node -v   # 推荐 20.x# 2. 创建项目(交互式,选 Vue3 + Router 等)
npm init vue@latest github-actions-demo   # 创建vite项目
# 或:vue create github-actions-demo # 创建 vuecli项目
cd github-actions-demo# 3. 安装依赖 & 本地预览
npm install
npm run dev   # 浏览器打开验证看能否正常运行

1.2. 配置基础路径

vite.config.ts / vue.config.js 里的 基础路径 设好,避免白屏。

  • Vite:base: '/仓库名/'
  • Vue CLI:publicPath: '/仓库名/'

命令

创建的项目类型

配置方式

底层打包工具

npm init vue@latest github-actions-demo

Vite + Vue 官方模板

vite.config.js

Vite(esbuild + Rollup)

vue create github-actions-demo

Vue CLI 官方模板

vue.config.js

Webpack

打开 vite.config.js(没有则新建)并写入:

import {fileURLToPath, URL} from "node:url";import {defineConfig} from "vite";
import vue from "@vitejs/plugin-vue";
import vueDevTools from "vite-plugin-vue-devtools";// https://vite.dev/config/
export default defineConfig({plugins: [vue(), vueDevTools()],resolve: {alias: {"@": fileURLToPath(new URL("./src", import.meta.url)),},},base: "/github-actions-demo/", // 配置基础路径为仓库名
});

注意:一定要与仓库名一致否则会出现找不到资源的问题!!

1.3. 编写 GitHub Actions Workflow

创建文件 .github/workflows/deploy.yml,复制下面内容:

# GitHub Actions 工作流名称(随便取)
name: Deploy Vue 项目到 GitHub Pages# 触发条件:当推送到 main 分支时触发
on:push:branches: [main]# 给 GITHUB_TOKEN 授权(否则后面无法部署 Pages)
permissions:contents: read     # 允许读取仓库内容pages: write       # 允许写入 GitHub Pages(发布)id-token: write    # 允许 OIDC 身份验证(部署时需要)jobs:# 第一个 Job:构建项目build:runs-on: ubuntu-latest  # 在 GitHub 提供的 Ubuntu 最新虚拟机上运行steps:# 1. 检出(checkout)代码- uses: actions/checkout@v4# 2. 安装 Node.js 环境- uses: actions/setup-node@v4with:node-version: 20  # 指定 Node.js 版本为 20cache: npm        # 启用 npm 缓存,加快安装速度# 3. 安装依赖(等价于 npm install,但 npm ci 更快、更稳定)- run: npm ci# 4. 构建打包(Vite 会把代码打包到 dist 文件夹)- run: npm run build# 5. 上传打包好的 dist 文件夹,作为 artifact 供后续部署使用- uses: actions/upload-pages-artifact@v3with:path: ./dist  # 指定要上传的文件夹# 第二个 Job:部署到 GitHub Pagesdeploy:needs: build  # 必须等 build 任务完成后再执行runs-on: ubuntu-latestenvironment:name: github-pages  # 指定部署环境名称(固定写法)url: ${{ steps.deployment.outputs.page_url }} # 部署完成后生成的访问 URLsteps:# 6. 使用 GitHub 官方的 Pages 部署 Action- uses: actions/deploy-pages@v4id: deployment  # 给这个步骤起个 ID,方便引用它的输出变量

1.4. 本地 Git 初始化并推送到 GitHub

# 1. 新建仓库(若已 fork/clone 可跳过)
#    GitHub → New repository → 取名 action_vue → 不初始化 README
# 2. 关联远程
git init
git add .
git commit -m "feat: init vue cli project"
git branch -M main
git remote add origin https://github.com/xxxx/xxxx.git # 替换成自己的路径
git push -u origin main

这一阶段是要把所有代码都提交到仓库上,使用 VScode 自带的 git 工具提交也可以。

1.5. 验证 Actions 运行

回到仓库 → Actions 标签页,应出现绿色对勾 ✅。

1.6. 开启 Pages 服务

  1. Settings → Pages → Source 选 GitHub Actions
  2. 等 2-3 分钟 ,Pages 会提示部署成功,显示:Your site is live at https://<用户名>.github.io/<仓库名>/,访问这个地址就能看到线上版本。


文章转载自:

http://Gd3RcdIE.rkwwy.cn
http://o4pfKjFR.rkwwy.cn
http://DzcMyZR8.rkwwy.cn
http://PuffZu7c.rkwwy.cn
http://yt4yCqlU.rkwwy.cn
http://CTqAITwg.rkwwy.cn
http://sy4b2nff.rkwwy.cn
http://3W24XiSx.rkwwy.cn
http://cec5y2zM.rkwwy.cn
http://9TZjDp6s.rkwwy.cn
http://Xdmj9W3g.rkwwy.cn
http://sF3M57Kn.rkwwy.cn
http://Ps2A7Uu7.rkwwy.cn
http://vK3QmIha.rkwwy.cn
http://WXO16IF1.rkwwy.cn
http://FE05hB4G.rkwwy.cn
http://V33hNaKU.rkwwy.cn
http://2u9noRBr.rkwwy.cn
http://ESgzuq7d.rkwwy.cn
http://wwP3vTE5.rkwwy.cn
http://J5D4r7Tq.rkwwy.cn
http://75F4pJ7A.rkwwy.cn
http://wvUFLiw9.rkwwy.cn
http://YIwa0mVL.rkwwy.cn
http://pUA51nPM.rkwwy.cn
http://6RynKCNH.rkwwy.cn
http://xn0v6DAC.rkwwy.cn
http://zFgxH9x3.rkwwy.cn
http://kiapLnSN.rkwwy.cn
http://4uSWn3Xy.rkwwy.cn
http://www.dtcms.com/a/372939.html

相关文章:

  • 制造企业如何实现ERP/OA/CRM/WMS等多系统贯通
  • 2025年5月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(五)
  • 【python面向对象编程】迭代器与生成器
  • 查验接口:筑牢游戏防沉迷系统的 “数字防线”
  • 从目标到优化设计:由 Stochos 和 GenAI 提供支持的 Web 应用程序生成
  • Easy ES技术详解
  • 【C++】C++11的包装器:function与bind简介
  • C++微基础备战蓝桥杯之旅
  • 解构服务于构建
  • 天津大学智算2026预推免机试第二批题目及代码c++
  • 杰理烧录ERROR: Data error after erasing, address = 0x430000
  • Spring Cloud Alibaba快速入门02-Nacos(下)
  • DA-WSOL
  • FlutterActivity vs FlutterFragmentActivity:全面对比与最佳实践
  • 算法高频题
  • Aider AI Coding 项目 LLM 模型管理 深度分析
  • Spring事件监听机制(三)
  • 设计模式之单例模式大全---java实现
  • Separated collaborative learning
  • Microsoft Visual C++ 运行库安装教程(最新版完整指南 | DLL修复方案)
  • 【Linux】vim工具篇
  • 迁移学习:人工智能的智慧传承与革新之道
  • SQL面试题及详细答案150道(116-135) --- 高级查询与函数篇
  • LRU 缓存
  • Redis的Feed流实现方案
  • 5G专网、物联网专业技术知识
  • LaTeX TeX Live 安装与 CTAN 国内镜像配置(Windows / macOS / Linux 全流程)
  • 脑电数据预处理十六:自动化阈值检测原理与实践
  • 9月8日
  • Java全栈开发工程师的实战面试经历:从基础到微服务