本着在github部署一个vue3+vite的综合站项目,卡了在这阶段几天,写篇文章记录一下~
经过两天在 github 的摸爬滚打,终于对 github 的工作流( workflows)、pages;vite 项目打包;有一些了解和配置。
github workflows(build.yml)#
# 将静态内容部署到 GitHub Pages 的简易工作流程
name: Deploy static content to 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: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
# Upload dist repository
path: './dist'
- name: Deploy to 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 属性