介绍
用官网的话来说 VuePress 是一款以 Vue 驱动的动态网站生成器,它的诞生初衷是为了反对 Vue 及其子项目的文档需要。因为vuepress反对自定义开发主题所以很多人拿它来写博客,上面我会用 VuePress 搭建一个极简的博客网站并应用GitHub Actions部署到GitHub Pages。
示例我的项目github源码
示例博客拜访地址
搭建博客
前提条件 VuePress 须要 Node.js >= 8.6
- 创立并进入一个新目录
mkdir vuepress-starter && cd vuepress-starter
- 应用你喜爱的包管理器进行初始化
yarn init # npm init
- 将 VuePress 装置为本地依赖
yarn add -D vuepress # npm install -D vuepress
装置依赖留神如果你的现有我的项目依赖了 webpack 3.x,VuePress官网举荐应用 Yarn 而不是 npm 来装置 VuePress。因为在这种情景下,npm 会生成谬误的依赖树。
- 创立你的第一篇文档
mkdir docs && echo '# Hello VuePress' > docs/README.md
- 在 package.json 中增加一些 scripts
{ "scripts": { "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs" }}
- 在本地启动服务器
yarn docs:dev # npm run docs:dev
VuePress 会在 http://localhost:8080 启动一个热重载的开发服务器。
如果呈现文章乱码能够参照这篇文章去解决。
当初,你应该曾经有了一个简略可用的 VuePress 文档。如果你有趣味的话能够去 VuePress 官方网站上深刻学习它的配置和用法来丰盛你的网站内容。
部署
部署到 GitHub Pages
接下来的内容假如你曾经应用过GitHub,并且对GitHub Pages有肯定的理解。
- 在GitHub上创立一个仓库
- 在 docs/.vuepress/config.js 中设置正确的 base
在 docs/.vuepress 文件夹下创立 config.js
// config.jsmodule.exports = { base: "/vuepress-starter/"}
- 配置.sh脚本
在你的我的项目根目录中,创立一个如下的 deploy.sh 文件(请自行判断去掉高亮行的正文):
留神
须要将 USERNAME 和 REPO 替换成本人的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分支下。
- 用sh脚本部署
关上package.json
下新增一条命令
"scripts": { ..., "deploy": "bash deploy.sh"}
关上控制台执行
npm run deploy
- 设置仓库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 入门教程
创立集体拜访令牌
- 在任何页面的右上角,单击您的个人资料照片,而后单击 Settings(设置)
- 在左侧边栏中,单击 Developer settings。
- 在左侧边栏中,单击 Personal access tokens(集体拜访令牌)
- 单击 Generate new token(生成新令牌)。
- 给令牌一个描述性名称。
令牌名字肯定要叫:ACCESS_TOKEN
- 抉择要授予此令牌的作用域或权限。 要应用令牌从命令行拜访仓库,请抉择 repo(仓库)。
- 单击 Generate token(生成令牌)。
- 单击复制将令牌复制到剪贴板。 出于平安起因,来到此页面后,您将无奈再次看到令牌。
编写 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
以上代码次要配置内容如下:
- branches 代表git push 触发flow的分支名称,如果你的分支不是main请批改正确。
- run 示意运行命令,若没有批改的话就是
yarn docs:build
。 - ACCESS_TOKEN 读取GitHub仓库之前咱们设置的 ACCESS_TOKEN,名称肯定要与之前设置的雷同。
- BRANCH 部署到 gh-pages 分支下。
- FOLDER 部署目录,如果没有批改默认配置就是
docs/.vuepress/dist
。
实现以上配置,下次push代码的时候,就会主动开启构建。
尝试push代码,回到GitHub上点击actions,发现我的项目曾经在主动构建了。
点击进入查看部署状况。
部署胜利,如果构建失败GitHub会发送一封邮件到你的邮箱。
搭建过程中遇到的问题
- 如果你打算公布到
https://<USERNAME>.github.io/,
则不须要配置.vuepress/config.js
base 属性,因为 base 默认是 "/"。 - 公布到线上后发现css款式失落,经查看发现拜访门路产生404的有可能是我的项目援用门路谬误,本文没有批改过打包门路,用的是默认门路
docs/.vuepress/dist
,如不统一请批改。 - 本文所应用的actions版本是v3,以往教程中所讲到的应用的是
JamesIves/github-pages-deploy-action
v2版本,新版本语法曾经产生了变动,如果持续应用就会产生谬误。 - ACCESS_TOKEN 肯定要和github上的sectets上的名称雷同。
参考资料
- vuepress官网
- 应用 GitHub Actions 主动部署博客
- 阮一峰 GitHub Actions 入门教程
- MarkDown 根本语法
小结
本文介绍了如何应用 vuepress 搭建博客,并应用GitHub Pages 部署到线上环境,然而部署的流程都是手动操作的有些麻烦,文章后半局部内容简略介绍了GitHub Actions,实现了当咱们要公布一篇文章的时候只有push
到 GitHub 就能实现自动化打包公布流程,让双手从机械的流程中解脱专一于写作。尽管可能简略实现一个博客网站,然而 VuePress 的更乏味的玩法还有待大家本人去学习。
以上就是本篇文章的所有内容。最初,感谢您浏览这篇文章,有任何问题或反馈请给我留言。