vue3 - 前端 Vue 项目提交GitHub 使用Actions自动化部署

2023-09-21 11:24:40

GitHub Demo 地址

在线预览

参考文章
使用GithubActions发布Vue网站到GithubPage
使用Github Actions将Vue项目部署到Github Pages
前端使用github pages 部署自己的网站
GitHub Actions自动化部署前端项目指南

前言

vue前端项目写好之后,想部署到线上通过在线地址进行访问,可以通过gitee或者GitHub的pages
这里是手动部署的方法:Vue - vue项目打包部署到Github的pages在线访问

自动化部署需要的准备工作

在项目中设置路径

vite.config.ts文件设置base为 './',
在这里插入图片描述

添加gh-pages分支

新增一个代码分支,命名为gh-pages,如果不是空白分支,把分支多余的代码删掉
然后复制dist里面的文件(不要dist文件夹)到项目根目录
提交代码到分支

设置pages

进入GitHub-项目-settings-pages设置,即可得到在线预览地址

在这里插入图片描述

创建自动部署的文件

在项目根路径创建.github\workflows\auto-deploy.yml文件

# .github/workflows/auto-deploy.yml

name: auto deploy 🚀

on:
  # 监听push操作
  push:
    branches:
      - main # 这里只配置了main分支,所以只有推送main分支才会触发以下任务
  pull_request:

  # 这个选项可以使你手动在 Action tab 页面触发工作流
  # workflow_dispatch:

permissions:
  # 允许对仓库的内容进行写操作。包括创建、修改和删除文件、目录以及提交更改等
  # 这里只配置了push,所以只有推送main分支才会触发以下任务 
  contents: write
  # 允许管理 GitHub Pages 服务并对其进行写操作
  pages: write


jobs:
  # 任务ID
  build-and-deploy:
    # 运行环境
    # runs-on: macos-latest
    # runs-on: windows-latest
    runs-on: ubuntu-latest
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
    
    # 步骤
    steps:
      # 官方action,将代码拉取到虚拟机
      - name: Checkout
        uses: actions/checkout@v3

      # 建一个名为setup-node的步骤(安装指定版本的Node.js)
      - name: setup-node 
        # 使用setup-node@v3这个action
        uses: actions/setup-node@v3
        # 指定某个action 可能需要输入的参数
        with:
          node-version: '16.x'

      # 安装 pnpm
      - name: Install pnpm
        run: npm install pnpm -g

      # 安装依赖  
      - name: Install dependencies
        run: pnpm i
      # 打包
      - name: Build application 🔧
        run: pnpm run build:prod

      # 部署 https://github.com/JamesIves/github-pages-deploy-action
      - name: Deploy 🚀
        uses: JamesIves/github-pages-deploy-action@v4
        if: github.ref == 'refs/heads/main'
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          branch: gh-pages  # default: gh-pages
          folder: dist
          clean: true # Automatically remove deleted files from the deploy branch
          # commit-message: ${{ github.event.head_commit.message }} # default: `Deploying to gh-pages from @ 3238feb 🚀`
          # commit-message: "deploy: ${{ github.sha }} (${{ github.event.head_commit.message }}) 🚀 "

获取密钥并存储到Github仓库中
创建密钥
进入Github的Settings中https://github.com/settings/,依次点击Developer settingsPersonal access tokens。然后点击Generate new token创建。因为要操作仓库,所以需要勾选repo权限。

具体请参考:github 创建个人访问令牌

请及时保存生成的密钥

将密钥存储到Github仓库

首先创建一个Github仓库,然后到仓库的Settings/Secret下,点击New repository secret将刚才保存的密钥保存,并命名为ACCESS_TOKEN(注意,如果这里的命名更改了,前面的yml文件中的${{ secrets.ACCESS_TOKEN }}也要更改)

完成这些步骤后,当你将新代码推送到 GitHub 仓库的主分支(通常是 main)时,GitHub Actions 将会自动运行,并将构建后的静态文件部署到 gh-pages 分支。然后,你可以通过访问 https://<用户名>.github.io/<仓库名称>/ 来查看部署好的 Vue 项目。

在这里插入图片描述
在这里插入图片描述

更多推荐

京东医疗器械分类汇总

京东医疗器械分类汇总,发布医药商品的时候需要选择的分类,有需要的吗整理为HTML代码<selectname="type"><optionvalue=""></option><optionvalue="Ⅱ类6866">Ⅱ类6866</option><optionvalue="Ⅱ类6822">Ⅱ类6822</option>

Hadoop设置固定ip无效的解决办法

今天配置Hadoop的时候,执行vi/etc/sysconfig/network-scripts/ifcfg-ens33修改网络配置文件后,一切正常,但重启后IP改变了,并且在修改以及重启网络连接数次后,IP依旧不按照我在ifcfg-ens33中配置的那样,检查了各处地方,仍然不行,在数小时的查错改错过程中发现了问题所

提升利润的秘密武器:超好用的跨境电商系统源码推荐

在竞争激烈的电商市场中,提高利润是每个卖家的追求。而跨境电商系统源码成为了许多成功卖家的秘密武器。本文将揭示为什么选择跨境电商系统源码,以及它在利润提升方面的重要作用。超好用的跨境电商系统源码推荐如果你正在寻找一款功能强大、易于使用和定制的跨境电商系统,那么你来对地方了。在本节中,我们将推荐一款超好用的跨境电商系统源码

60从零开始学Java之与数字相关的类有哪些?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言我们在解决实际问题时,会经常对数字、日期和系统设置进行处理,比如在我们的代码中,经常会遇到一些数字&数学问题、随机数问题、日期问题和系统设置问题等。为了解决这些问题,Java给我们提供了多

【无标题】

昨天(2023年9月20日),汉字小达人的主办方在官方发布了《“中文自修杯”第十届上海市小学生“美丽汉字小达人”区级活动“自由报名”区级初选规则》的通知,区级比赛自由报名的参赛从9月25日到9月30日,共持续六天。现将该规则的核心内容划重点如下:无需提前报名,在比赛期间直接用学生正确的学校、姓名、学号等信息,通过微信公

【Redis GEO】3、地理位置类型的性能优化及使用限制

在使用Redis的地理位置类型时,为了提高查询性能和降低资源消耗,需要进行一些优化和性能考虑1、使用合适的半径在执行GEOADD和GEORADIUS命令时,需要根据实际情况选择合适的半径。如果半径过大,可能会导致查询时间过长和资源消耗增加;如果半径过小,可能会导致查询结果不完整。因此,需要根据实际需求进行合理的配置。2

Excel VLOOKUP 初学者教程:通过示例学习

目录前言一、VLOOKUP的用法二、应用VLOOKUP的步骤三、VLOOKUP用于近似匹配四、在同一个表里放置不同的VLOOKUP函数结论前言Vlookup(V代表“垂直”)是excel中的内置函数,允许在excel的不同列之间建立关系。换句话说,它使您可以从一列数据中查找(查找)一个值,并从另一列中返回其相应或对应的

国产化BI平滑替代,某知名寿险Cognos替换项目分享

​长期使用国外BI软件可能存在安全风险,其中包括数据安全、信息安全以及系统安全等经营的风险。与数据库等环节不同,就整体替代难度而言,目前中国企业BI国产化替代可行性已今非昔比,完全可实现用100%自主可控、安全高效的亿信ABI产品取代甚至升级替换国外产品。面对国产化BI替代大势,亿信华辰抓住时代的要求,开发了Cogno

Python学习 -- 常用数据交换格式(CSV、XML、JSON)

数据交换格式是在不同系统之间交换数据时使用的一种标准化格式。在Python中,我们常用的数据交换格式有CSV、XML和JSON。本篇技术博客将介绍这三种数据交换格式的详细使用方法,并提供具体的代码案例,帮助初学者快速掌握这些格式的使用。CSV(逗号分隔值)格式CSV是一种简单的文本文件格式,使用逗号作为字段之间的分隔符

怎么压缩视频?视频过大跟我这样压缩

在日常生活中,我们常常会遇到需要上传或者发送视频的情况,然而,有时候视频文件过大,无法顺利上传或发送,这时候就需要对视频进行压缩。那么,如何有效地压缩视频呢?看完下面三个方法你就明白了。一、使用嗨格式压缩大师这是一款专业的视频压缩工具,可以轻松将视频压缩到指定大小,同时保持视频的质量。1、打开嗨格式压缩大师后,选择需要

今年嵌入式行情怎么样?

今年嵌入式行情怎么样?嵌入式技术今年可以说是IT领域中最炙手可热的之一。随着中年危机和内卷问题的出现,越来越多的互联网从业者将目光投向了嵌入式领域。国内的嵌入式市场一直受终端需求变化的影响而波动,但随着国内产业自主化的发展趋势,嵌入式技术的应用领域变得越来越广泛。社会信息化、智能化和网络化的趋势也推动着嵌入式市场的高速

热文推荐