介绍

用官网的话来说 VuePress 是一款以 Vue 驱动的动态网站生成器,它的诞生初衷是为了反对 Vue 及其子项目的文档需要。因为vuepress反对自定义开发主题所以很多人拿它来写博客,上面我会用 VuePress 搭建一个极简的博客网站并应用GitHub Actions部署到GitHub Pages。

示例我的项目github源码

示例博客拜访地址

搭建博客

前提条件 VuePress 须要 Node.js >= 8.6
  1. 创立并进入一个新目录
mkdir vuepress-starter && cd vuepress-starter
  1. 应用你喜爱的包管理器进行初始化
yarn init # npm init
  1. 将 VuePress 装置为本地依赖
yarn add -D vuepress # npm install -D vuepress
装置依赖留神如果你的现有我的项目依赖了 webpack 3.x,VuePress官网举荐应用 Yarn 而不是 npm 来装置 VuePress。因为在这种情景下,npm 会生成谬误的依赖树。
  1. 创立你的第一篇文档
mkdir docs && echo '# Hello VuePress' > docs/README.md 
  1. 在 package.json 中增加一些 scripts
{  "scripts": {    "docs:dev": "vuepress dev docs",    "docs:build": "vuepress build docs"  }}
  1. 在本地启动服务器
yarn docs:dev # npm run docs:dev

VuePress 会在 http://localhost:8080 启动一个热重载的开发服务器。

如果呈现文章乱码能够参照这篇文章去解决。

当初,你应该曾经有了一个简略可用的 VuePress 文档。如果你有趣味的话能够去 VuePress 官方网站上深刻学习它的配置和用法来丰盛你的网站内容。

部署

部署到 GitHub Pages

接下来的内容假如你曾经应用过GitHub,并且对GitHub Pages有肯定的理解。

  1. 在GitHub上创立一个仓库

  1. 在 docs/.vuepress/config.js 中设置正确的 base

在 docs/.vuepress 文件夹下创立 config.js

// config.jsmodule.exports = {    base: "/vuepress-starter/"}
  1. 配置.sh脚本

在你的我的项目根目录中,创立一个如下的 deploy.sh 文件(请自行判断去掉高亮行的正文):

留神
须要将 USERNAMEREPO 替换成本人的GitHub账号和仓库名称这里我拿本人的GitHub账号为例。
#!/usr/bin/env sh# 确保脚本抛出遇到的谬误set -e# 生成动态文件npm run docs:build# 进入生成的文件夹cd docs/.vuepress/dist# 如果是公布到自定义域名# echo 'www.example.com' > CNAMEgit initgit add .git commit -m 'deploy'# 如果公布到 https://<USERNAME>.github.io# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git main# 如果公布到 https://<USERNAME>.github.io/<REPO>git remote add origin git@github.com:huabingtao/vuepress-starter.gitgit branch -M maingit push -f git@github.com:huabingtao/vuepress-starter.git main:gh-pagescd -
以上脚本次要就是干了几件事: 1.生成动态文件 2.切换到生成文件的目录下初始化git写入一条记录 3. 把动态文件推送到远端仓库的gh-pages分支下。
  1. 用sh脚本部署

关上package.json下新增一条命令

"scripts": {  ...,  "deploy": "bash deploy.sh"}

关上控制台执行

npm run deploy
  1. 设置仓库GitHub Pages拜访门路

当初代码曾经推送到近程仓库的gh-pages分支下,接下来咱们须要设置博客的拜访门路,点击右上角的Settings按钮进入设置。

抉择指标分支为gh-pages,根目录为root

稍等几分钟后拜访https://huabingtao.github.io/vuepress-starter/此时发现咱们的博客曾经部署到Github Pages了。
到这里如果你只是心愿你的博客能够随时在互联网被拜访到,只须要在写完文章之后去执行 npm run deploy 这行命令就能够了。

应用 Github Actions 主动部署

当初咱们写一篇文章并且公布到 GitHub Pags 须要手动执行sh脚本,应用GitHub Actions 能够帮忙咱们简化流程,让写完一篇文章后只须要将代码上传至 GitHub 就能帮咱们主动构建部署到线上。

GitHub Actions 有一些本人的术语。

1.workflow (工作流程):继续集成一次运行的过程,就是一个 workflow。

2.job (工作):一个 workflow 由一个或多个 jobs 形成,含意是一次继续集成的运行,能够实现多个工作。

3.step(步骤):每个 job 由多个 step 形成,一步步实现。

4.action (动作):每个 step 能够顺次执行一个或多个命令(action)。

想要理解更多Github Actions常识能够浏览官网GitHub Actions疾速入门,或者阮一峰老师的GitHub Actions 入门教程

创立集体拜访令牌

  1. 在任何页面的右上角,单击您的个人资料照片,而后单击 Settings(设置)

  2. 在左侧边栏中,单击 Developer settings。

  3. 在左侧边栏中,单击 Personal access tokens(集体拜访令牌)

  4. 单击 Generate new token(生成新令牌)。
  5. 给令牌一个描述性名称。

    令牌名字肯定要叫:ACCESS_TOKEN

  6. 抉择要授予此令牌的作用域或权限。 要应用令牌从命令行拜访仓库,请抉择 repo(仓库)。

  1. 单击 Generate token(生成令牌)。
  2. 单击复制将令牌复制到剪贴板。 出于平安起因,来到此页面后,您将无奈再次看到令牌。

编写 workflow 文件

工作流文件应用 YAML 语法,这里不对 YAML 语法做过多介绍想要理解更多信息请参阅五分钟理解 YAML。

接着创立.github/workflows/main.yml文件,内容如下:

name: docson:  # 每当 push 到 main 分支时触发部署  push:    branches: [main]  # 手动触发部署  workflow_dispatch:jobs:  docs:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v2        with:          # “最近更新工夫” 等 git 日志相干信息,须要拉取全副提交记录          fetch-depth: 0      - name: Setup Node.js        uses: actions/setup-node@v1        with:          # 抉择要应用的 node 版本          node-version: "14"      # 缓存 node_modules      - name: Cache dependencies        uses: actions/cache@v2        id: yarn-cache        with:          path: |            **/node_modules          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}          restore-keys: |            ${{ runner.os }}-yarn-      # 如果缓存没有命中,装置依赖      - name: Install dependencies        if: steps.yarn-cache.outputs.cache-hit != 'true'        run: yarn      # 运行构建脚本      - name: Build VuePress site        run: yarn docs:build      # 查看 workflow 的文档来获取更多信息      # @see https://github.com/crazy-max/ghaction-github-pages      - name: Deploy to GitHub Pages        uses: JamesIves/github-pages-deploy-action@3.7.1        with:          ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}          # 部署到 gh-pages 分支          BRANCH: gh-pages          # 部署目录为 VuePress 的默认输入目录          FOLDER: docs/.vuepress/dist

以上代码次要配置内容如下:

  1. branches 代表git push 触发flow的分支名称,如果你的分支不是main请批改正确。
  2. run 示意运行命令,若没有批改的话就是 yarn docs:build
  3. ACCESS_TOKEN 读取GitHub仓库之前咱们设置的 ACCESS_TOKEN,名称肯定要与之前设置的雷同。
  4. BRANCH 部署到 gh-pages 分支下。
  5. FOLDER 部署目录,如果没有批改默认配置就是 docs/.vuepress/dist

实现以上配置,下次push代码的时候,就会主动开启构建。

尝试push代码,回到GitHub上点击actions,发现我的项目曾经在主动构建了。

点击进入查看部署状况。

部署胜利,如果构建失败GitHub会发送一封邮件到你的邮箱。

搭建过程中遇到的问题

  1. 如果你打算公布到 https://<USERNAME>.github.io/, 则不须要配置 .vuepress/config.js base 属性,因为 base 默认是 "/"。
  2. 公布到线上后发现css款式失落,经查看发现拜访门路产生404的有可能是我的项目援用门路谬误,本文没有批改过打包门路,用的是默认门路 docs/.vuepress/dist,如不统一请批改。
  3. 本文所应用的actions版本是v3,以往教程中所讲到的应用的是JamesIves/github-pages-deploy-action v2版本,新版本语法曾经产生了变动,如果持续应用就会产生谬误。
  4. ACCESS_TOKEN 肯定要和github上的sectets上的名称雷同。

参考资料

  • vuepress官网
  • 应用 GitHub Actions 主动部署博客
  • 阮一峰 GitHub Actions 入门教程
  • MarkDown 根本语法

小结

本文介绍了如何应用 vuepress 搭建博客,并应用GitHub Pages 部署到线上环境,然而部署的流程都是手动操作的有些麻烦,文章后半局部内容简略介绍了GitHub Actions,实现了当咱们要公布一篇文章的时候只有pushGitHub 就能实现自动化打包公布流程,让双手从机械的流程中解脱专一于写作。尽管可能简略实现一个博客网站,然而 VuePress 的更乏味的玩法还有待大家本人去学习。

以上就是本篇文章的所有内容。最初,感谢您浏览这篇文章,有任何问题或反馈请给我留言。