本着在 github 部署一个 vue3+vite 的综合站项目,卡了在这阶段几天,写篇文章记录一下~
经过两天在 github 的摸爬滚打,终于对 github 的工作流( workflows)、pages;vite 项目打包;有一些了解和配置。
github workflows(build.yml)#
# 將靜態內容部署到 GitHub Pages 的簡易工作流程
name: 部署靜態內容到 Pages
on:
# 僅在推送到預設分支時執行。
push:
branches: ['main']
# 這個選項可以使你手動在 Action tab 頁面觸發工作流
workflow_dispatch:
# 設置 GITHUB_TOKEN 的權限,以允許部署到 GitHub Pages。
permissions:
contents: read
pages: write
id-token: write
# 允許一個並發的部署
concurrency:
group: 'pages'
cancel-in-progress: true
jobs:
# 單次部署的工作描述
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: 檢查
uses: actions/checkout@v4
- name: 設置 Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: 安裝相依套件
run: npm install
- name: 構建
run: npm run build
- name: 設置 Pages
uses: actions/configure-pages@v3
- name: 上傳檔案
uses: actions/upload-pages-artifact@v2
with:
# 上傳 dist 儲存庫
path: './dist'
- name: 部署到 GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
注意點#
- 需要配置一個有權限的密鑰給倉庫使用 (沒有需要到倉庫初始化)
- 根據不同的 uses 有著不同的配置 需要具體到對應的庫去查看 (我嘗試了很多工作流 有些工作流太久 推薦去對應打包工具的官網去找對應的工作流)
- npm 緩存問題
- !!!當選擇當前工作流時 不需要手動指定分支以及目錄!!! 不然會找不到目標檔案
vite 注意點#
- 需要設置 base 屬性 官方連結https://cn.vitejs.dev/guide/static-deploy.html#github-pages
- 圖片設置
- public 目錄不會被 vite 打包 在設置 base 的前提下 (默認 /xx.html 直接可以訪問) base/xx.html
- import.meta.env.BASE_URL 直接訪問 base 屬性