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://www.pswp.cn/pingmian/95985.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95985.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/95985.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

minio 文件批量下载

MinIO 批量下载功能说明 1. 功能描述 前端勾选多个对象文件后&#xff0c;一次性将这些对象从 MinIO 拉取并打包成 ZIP&#xff0c;通过浏览器直接下载。整体特性&#xff1a; 支持跨桶批量下载&#xff08;不同 bucket 的对象可同时下载&#xff09;。服务端采用流式压缩边…

机器学习11——特征选择与稀疏学习

上一章&#xff1a;机器学习10——降维与度量学习 下一章&#xff1a;【从 0 到 1 落地】机器学习实操项目目录&#xff1a;覆盖入门到进阶&#xff0c;大学生就业 / 竞赛必备[TOC] 机器学习实战项目&#xff1a;【从 0 到 1 落地】机器学习实操项目目录&#xff1a;覆盖入门到…

整理python快速构建数据可视化前端的Dash库

一.Dash框架# 导入 Dash 相关库 import dash from dash import dcc, html # dcc 是 Dash 核心组件库&#xff0c;html 是 HTML 组件库 from typing import Generic# 创建一个 Dash 应用实例 app dash.Dash(__name__)# 定义应用的布局 app.layout html.Div(children[# 添加一…

RNN循环神经网络(一):基础RNN结构、双向RNN

RNN循环神经网络 什么是循环神经网络&#xff1f; 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一类专门用于处理序列数据的神经网络架构。与传统的前馈神经网络不同&#xff0c;RNN具有"记忆"能力&#xff0c;能够捕捉数据中的时间依赖关系…

#C语言——刷题攻略:牛客编程入门训练(十):攻克 循环控制(二),轻松拿捏!

&#x1f31f;菜鸟主页&#xff1a;晨非辰的主页 &#x1f440;学习专栏&#xff1a;《C语言刷题合集》 &#x1f4aa;学习阶段&#xff1a;C语言方向初学者 ⏳名言欣赏&#xff1a;"代码行数决定你的下限&#xff0c;算法思维决定你的上限。" 目录 1. BC82 乘法表…

daily notes[16]

文章目录意大利语单词 **“bello”**一、核心含义二、变形规则&#xff1a;最重要的部分1. 当 “bello” 位于 **名词前面** 时2. 当 “bello” 位于 **名词后面** 或 **动词后面** 时三、用法总结与对比四、其他用法和常见表达references意大利语单词 “bello” 融合了 指示形…

【知识库】计算机二级python操作题(二)

文章目录基本操作题1基本操作题2基本操作题3简单应用题1简单应用题2综合应用题1基本操作题1考生文件夹下存在一个文件PY101.py&#xff0c;请写代码替换横线&#xff0c;不修改其他代码&#xff0c;实现以下功能&#xff0c;随机选择一个手机品牌屏幕输出。 # 请在...处使用一行…

Nginx 服务用户与防盗链配置

目录 Nginx 服务用户与防盗链配置 1. 隐藏版本号 1.1 配置方法 1.2 生效与验证 2. 修改当前程序账号 2.1 操作步骤 3. 缓存时间 3.1 配置方法 3.2 说明 4. 日志分割 4.1 实现方式&#xff08;脚本自动分割&#xff09; 5. 连接超时时间 5.1 核心超时指令&#xff0…

域格4G模块通信协议之HTTP(三):下载大文件的两种方式

域格ASR系列模块支持HTTP下载大文件&#xff0c;本文将提供两种方式。一、直接通过URC上报数据基础操作核心指令说明配置说明响应说明应用示例注意点二、HTTP Range分段下载核心指令说明注意点一、直接通过URC上报数据 若文件体积适中&#xff0c;且需要 MCU 即时处理数据&…

Android 图片 OOM 防护机制设计:大图加载、内存复用与多级缓存

1. 为什么图片加载总让 Android 开发抓狂? 图片是 Android 应用中不可或缺的元素,从用户头像到高清壁纸,从商品详情页到动态表情包,图片无处不在。然而,图片加载是内存管理的雷区,稍不留神就可能触发臭名昭著的 OutOfMemoryError(OOM)。为啥图片这么“吃内存”?原因很…

9月9日

TCP 服务器端#include <myhead.h> #define SER_PORT 8888 //服务器端口号 #define SER_IP "192.168.108.179" //服务器IP地址 int main(int argc, const char *argv[]) {//创建一个用于连接的套接字文件描述符int sfd socket(AF_INET, SOCK_STRE…

Docker生产部署

目录 一、准备工作&#xff1a;理解 Docker 与 Spring Boot 的关系 1. Docker 是什么&#xff1f; 2. Spring Boot 为什么适合 Docker&#xff1f; 二、编写Dockerfile 三、配置管理 挂载外部配置文件 四、用 docker-compose 编排多服务 一、准备工作&#xff1a;理解 Do…

ARM 基础(3)

ARM汇编与C语言函数的相互调用及参数传递汇编调用C函数参数传递规则 前4个参数通过寄存器 R0-R3 传递&#xff0c;超出部分从右向左压栈。32位返回值存于 R0&#xff0c;64位整数用 R0 和 R1&#xff0c;浮点数通过 S0/D0 返回。示例&#xff1a;ARM汇编调用C函数.global _star…

OpenCV计算机视觉笔记合集

参考课程&#xff1a; 【黑马程序员 OpenCV入门教程】 [https://www.bilibili.com/video/BV1Fo4y1d7JL] ZZHow(ZZHow1024) 学习路线 基本的图像处理方法&#xff1a;几何变换&#xff0c;形态学变换&#xff0c;图像平滑&#xff0c;直方图操作&#xff0c;模板匹配&#…

Mybatis-12 第三方缓存-EhCache

配置文档 Ehcache配置文件ehcache.xml Java Ehcache缓存的timeToIdleSeconds和timeToLiveSeconds区别 基本介绍 1.EhCache是一个纯Java的缓存框架&#xff0c;具有快速、精干等特点 2.MyBatis有自己默认的二级缓存&#xff08;前面我们已经使用过了&#xff09;&#xff0c;…

元器件--电容器

文章目录一、技术理论  1、电容定义  2、定义式  3、单位换算  4、电容作用  5、电容特性二、组成结构  1、极板&#xff08;电极&#xff09;​​  ​​2、介质&#xff08;绝缘层&#xff09;​​  3、引线&#xff08;电极引出端&#xff09;​​  4、封装…

【Leetcode hot 100】146.LRU缓存

问题链接 146.LRU缓存 问题描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关…

MySQL超大数据量查询与删除优化

引言 在处理TB级数据时&#xff0c;传统SQL操作可能导致性能崩溃。本文揭示MySQL超大数据量场景下的核心优化策略&#xff0c;通过生产环境案例展示如何将亿级数据删除耗时从8小时压缩至8分钟&#xff0c;并附完整监控方案与容灾措施。 深度剖析海量数据操作痛点 1. 传统删除操…

【内存管理】常用的页表映射函数

1、pgd_addr_end 根据当前虚拟地址 addr 和目标结束地址 end&#xff0c;计算当前 PGD 项 能够覆盖的最大虚拟地址范围的结束地址 next。 如果 addr 和 end 跨越多个 PGD 项&#xff08;即 end 超出当前 PGD 项的地址范围&#xff09;&#xff0c;则返回当前 PGD 项的地址边界。…