一份自动部署VuePress到Github Pages的脚本

如题,脚本如下:

deploy.sh 复制代码
#!/bin/bash

# 脚本只要发生错误,就终止执行。
set -e

# 生成静态文件
npm run build

# 判读是否存在 .git目录
if [ -d .git/ ];then
echo '已经是一个git仓库,需要删除已有pages分支后重新拉取新分支'
# 删除已有分支,避免代码合并冲突
git branch -D pages
# 添加工作区所有变化到暂存区
git add -A
# 将暂存区里的改动提交到本地的版本库
git commit -m 'add'

# 如果不存在 .git 证明不是git仓库,需要初始化git仓库
else
echo '初始化git仓库'
# 初始化git仓库
git init
# 添加工作区所有变化到暂存区
git add -A
# 将暂存区里的改动提交到本地的版本库
git commit -m 'add'
# 命名当前分支
git branch -M master
# 关联远端仓库
git remote add origin [git@github.com:xxx] #自己的代码仓库
fi

## 将更新推送到远程主分支
git push --set-upstream -f origin master

# 进入pages分支
git checkout -b pages

# 将dist移动到根目录
cp -rf docs/.vuepress/dist ./dist
# 删除原有的docs文件夹
rm -rf docs/
# 将dist重命名
mv ./dist/ ./docs/

# 提交更新
git add -A
git commit -m 'deploy'
git push --set-upstream -f origin pages

# 回到主分支
git checkout master

新建VuePress文档

参考VuePress快速上手

1、创建并进入一个新目录

bash 复制代码
mkdir vuepress-starter && cd vuepress-starter

2、使用你喜欢的包管理器进行初始化

csharp 复制代码
yarn init # npm init

3、将 VuePress 安装为本地依赖

csharp 复制代码
yarn add -D vuepress # npm install -D vuepress

4、创建你的第一篇文档

bash 复制代码
mkdir docs && echo '# Hello VuePress' > docs/README.md

5、在 package.json 中添加一些 scripts

json 复制代码
{
  "scripts": {
    "dev": "vuepress dev docs",
    "build": "vuepress build docs"
  }
}

6、在本地启动服务器

arduino 复制代码
yarn dev # npm run dev

以上命令可以新建一个基础VuePress文档,并在会在 http://localhost:8080 (opens new window)启动一个热重载的开发服务器。

新建github仓库

添加项目配置

1、配置部署站点的基础路径 此处应为github 仓库名更多配置

添加脚本

1、在VuePress文档中新建deploy.sh(复制最上边脚本)

2、复制github仓库地址

3、修改脚本远端仓库地址

4、添加忽略文件.gitignore

部署文档

在根目录执行 sh deploy.sh 命令

配置github

1、进入Setting页

2、选择分支及文档目录

3、刷新页面号,获取站点URL

4、复制URL,在浏览器窗口打开,即可看到部署好的博客站点

注意:

生成站点地址会有几分钟的延迟,若刷新页面没有出现站点地址,请耐心等待几分钟

文档只可放在根目录(/)或(/docs)目录下:

参考文档

Bash 脚本 set 命令教程

Shell 教程

相关推荐
haluhalu.1 分钟前
Agent = LLM + 上下文 + 工具(含观察 / 动作空间、ReAct 循环)
前端·javascript·人工智能·python·react.js·机器学习·个人开发
高频因子挖掘机3 分钟前
量化研究中,为什么拿到 Pandas 行情数据不等于完成数据接入?
后端·github·api
小弥儿15 分钟前
PPT Master:用 AI 把PDF/Word一键转成可编辑 PPT
学习·开源·github
高频因子挖掘机1 小时前
股票 API 接入回测框架时最容易忽略的几个问题:复权、时间对齐与数据泄露
后端·github·api
子兮曰6 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
sm_926787059 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
IMPYLH9 小时前
HTML 的 <video> 元素
前端·html
溪语流沙9 小时前
【每天一个CSS | Day19】流光文字与一笔写成的手写签名
前端·javascript·css
逐光者93310 小时前
STM32——SPI 屏 · Flash · 高速
java·前端·stm32
To_OC10 小时前
同样是让 AI 写全栈,为什么别人一句话就够了
前端·前端框架·next.js