Skip to content
On this page

最近写文章越来越多,基本上写完都是发到掘金上的,又希望别人通过github也能够阅读,然后又copy一份放到github上,无意间发现很多同学都在github上搭建了自己的博客(xxxx.github.io),这样阅读起来的体验感就会提升了很多,所以我也想搭建自己的博客。看到vitepress的官网上面有免费的教程,便立刻动起手来。

创建项目

js
// 1. 创建文件夹并进入
mkdir vitepress-starter && cd vitepress-starter
// 2. 初始化pnpm
pnpm init
// 3. 安装vitepress 和 vue
pnpm add -D vitepress vue
// 4. 创建docs文件夹  并新建index.md 写上内容
mkdir docs && echo '# Hello VitePress' > docs/index.md

然后我们在package.json中配置脚本

js
{
  ...
  "scripts": {
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:preview": "vitepress preview docs"
  },
  ...
}

这样就可以通过pnpm docs:dev运行起来了。此时你会发现docs文件夹下面多了个文件夹

image.png

如果想配置自己的博客,则需要在docs/.vitepress新建一个config.js,然后通过官网上面的描述去配置就可以了。

如果我们打包的话,打包的文件会放在docs/.vitepress/dist下面

部署

那如何部署呢?

.github/workflows/deploy.yml

在我们项目中新建.github/workflows/deploy.yml文件,然后根据官网的描述配置。

js
name: Deploy
on:
  workflow_dispatch: {}
  push:
    branches:
      - main
jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      pages: write     
      id-token: write 
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v3
        with:
          node-version: 16
          cache: yarn
      - run: yarn install --frozen-lockfile
      - name: Build
        run: yarn docs:build
      - uses: actions/configure-pages@v2
      - uses: actions/upload-pages-artifact@v1
        with:
          path: docs/.vitepress/dist
      - name: Deploy
        id: deployment
        uses: actions/deploy-pages@v1

初始化git

js
git init

然后在github上创建项目

image.png 将代码提交到github上。这样每次提交完代码之后就会自动部署了。

但是我在自动部署的时候就出现了问题。

image.png

奇怪,我是按照官网上面说的配置的啊,为什么会又这种情况?此时你应该好好的看看报错信息,这是说:无法找到可执行的文件pnpm。为什么找不到呢?搜索了好久没有找到答案?或许我们应该安装一下?

image.png

此时这个报错就解决了。当你很兴奋的觉得这时候应该没啥问题了吧,然后打开https://xxx.github.io/vitepress-starter, 发现和我们想象的效果不一样,你会发现好像打开是docs/index.md这个文件。这又是啥问题呢?

这得需要我们在github Pages中配置。

image.png

当你看分支的时候,发现多了一个分支gh-pages,这个分支里面的东西就是我们打包过后的东西,然后我们根据上图配置即可。

哈哈哈!!!这下总应该可以了吧。

赶紧刷新下页面,发现,我擦咧😂 好像css样式都没有生效哎。

其实官网早就给了提示了。

image.png

所以我们需要在config.js中配置base

image.png

然后重新提交代码刷新页面~ 终于生效了哦,芜湖~

所以看似简单的东西一定要动手尝试,说不定就会有你想想不到的问题。

顺便给大家展示一下我的成果:https://qinran0423.github.io/blog/