Pages 部署
这里我们只介绍 GitLab 和 GitHub 的 pages 功能的部署。
GitHub
打开项目设置的 GitHub Pages 模块,将 Source 设置为 gh-pages,这样我们就可以将博客项目放在 master 分支,而部署到 gh-pages 分支。
手动部署
在根目录建一个 deploy.sh 文件:
# 确保脚本抛出遇到的错误
set -e
# 生成静态文件
npm run docs:build
# 进入生成的文件夹
cd docs/.vuepress/dist
# 如果是发布到自定义域名
# echo 'www.example.com' > CNAME
git init
git add -A
git commit -m 'deploy'
# 如果发布到 https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master
# 如果发布到 https://<USERNAME>.github.io/<REPO>
# git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages
cd -
警告
如果你用的 MAC,在项目根目录借助 终端 执行 bash deploy.sh 即可;如果你使用的是 WINDOWS,在项目根目录借助 Git Bash 执行 bash deploy.sh 即可。
自动部署
GitHub 的自动部署需要借助 travis-ci 。
- 打开 travis-ci,使用
GitHub登录; - 进入设置页面,点击
Manage repositories on GitHub按钮,将需要自动部署的项目导入进来; - 项目列表中,项目后面有一个
settings按钮,点击进去将进行配置:- 获取
token:进入github的设置页面,点击Developer settings按钮,点击Personal access tokens按钮,在当前页面生成token,名字随便写,只是起到区分作用; - 配置
token:将上面生成的token添加在项目的设置页面的Environment Variables,切记,名字不可随便写,在这里你写成GITHUB_TOKEN; - 配置
Cron Jobs:(如果你的项目就在master分支,可以不用配置这里)Branch选择 你存放项目源码的分支,Interval选择monthly,Options选择Always run,添加成功后便会生效。
- 获取
- 在根目录下创建
.travis.yml(配置规范):language: node_js node_js: - lts/* script: - npm run build deploy: provider: pages skip-cleanup: true local_dir: docs/.vuepress/dist # 项目打包后生成的文件的目录 github-token: $GITHUB_TOKEN # 这里这个变量就是刚才配置 token 时填写的那个变量 keep-history: true on: branch: master # 项目源码所在的分支 - 现在去提交一下代码试试吧,在你提交成功后
travis-ci的控制台就能看到你的项目在部署了。
GitLab
手动部署
设置输出目录为
public:由于
GitLab的pages功能的指定文件夹是public,所以我们要将项目的输出目录改为public,也就是将config.js的dest设置为public;本地编译,然后将项目提交到
GitLab即可。
自动部署
- 设置输出目录为
public; - 由于
GitLab自带 CI,所以就省去了很多的配置步骤,只需要在项目根目录创建.gitlab-ci.yml(配置规范):image: node:9.11.1 pages: cache: paths: - node_modules/ # 缓存 node_modules,加速编译 script: - npm install - npm run docs:build artifacts: paths: - public only: - master - 将项目提交到
GitLab即可。
