5.3 KiB
Deployment
The following guides are based on some shared assumptions:
- You are placing your Markdown source files inside the
docs
directory of your project; - You are using the default build output location (
.vuepress/dist
); - You are using yarn classic as package manager, while npm is also supported;
- VuePress is installed as a local dependency in your project, and you have setup the following script in
package.json
:
{
"scripts": {
"docs:build": "vuepress build docs"
}
}
GitHub Pages
-
Set the correct base config.
If you are deploying to
https://<USERNAME>.github.io/
, you can omit this step asbase
defaults to"/"
.If you are deploying to
https://<USERNAME>.github.io/<REPO>/
, for example your repository is athttps://github.com/<USERNAME>/<REPO>
, then setbase
to"/<REPO>/"
. -
Choose your preferred CI tools. Here we take GitHub Actions as an example.
Create
.github/workflows/docs.yml
to set up the workflow.
::: details Click to expand sample config
name: docs
on:
# trigger deployment on every push to main branch
push:
branches: [main]
# trigger deployment manually
workflow_dispatch:
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
# fetch all commits to get last updated time or other git log info
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v1
with:
# choose node.js version to use
node-version: '14'
# cache 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-
# install dependencies if the cache did not hit
- name: Install dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn --frozen-lockfile
# run build script
- name: Build VuePress site
run: yarn docs:build
# please check out the docs of the workflow for more details
# @see https://github.com/crazy-max/ghaction-github-pages
- name: Deploy to GitHub Pages
uses: crazy-max/ghaction-github-pages@v2
with:
# deploy to gh-pages branch
target_branch: gh-pages
# deploy the default output dir of VuePress
build_dir: docs/.vuepress/dist
:::
::: tip Please refer to GitHub Pages official guide for more details. :::
GitLab Pages
-
Set the correct base config.
If you are deploying to
https://<USERNAME>.gitlab.io/
, you can omitbase
as it defaults to"/"
.If you are deploying to
https://<USERNAME>.gitlab.io/<REPO>/
, for example your repository is athttps://gitlab.com/<USERNAME>/<REPO>
, then setbase
to"/<REPO>/"
. -
Create
.gitlab-ci.yml
to set up GitLab CI workflow.
::: details Click to expand sample config
# choose a docker image to use
image: node:14-buster
pages:
# trigger deployment on every push to main branch
only:
- main
# cache node_modules
cache:
paths:
- node_modules/
# install dependencies and run build script
script:
- yarn --frozen-lockfile
- yarn docs:build --dest public
artifacts:
paths:
- public
:::
::: tip Please refer to GitLab Pages official guide for more details. :::
Google Firebase
-
Make sure you have firebase-tools installed.
-
Create
firebase.json
and.firebaserc
at the root of your project with the following content:
firebase.json
:
{
"hosting": {
"public": "./docs/.vuepress/dist",
"ignore": []
}
}
.firebaserc
:
{
"projects": {
"default": "<YOUR_FIREBASE_ID>"
}
}
- After running
yarn docs:build
, deploy using the commandfirebase deploy
.
::: tip Please refer to Firebase CLI official guide for more details. :::
Heroku
-
Install Heroku CLI.
-
Create a Heroku account by signing up.
-
Run
heroku login
and fill in your Heroku credentials:
heroku login
- Create a file called
static.json
in the root of your project with the below content:
static.json
:
{
"root": "./docs/.vuepress/dist"
}
This is the configuration of your site; read more at heroku-buildpack-static.
Netlify
-
On Netlify, set up a new project from GitHub with the following settings:
- Build Command:
yarn docs:build
- Publish directory:
docs/.vuepress/dist
- Build Command:
-
Set Environment variables to choose node version:
NODE_VERSION
: 14
-
Hit the deploy button.