零基础!手把手教你使用VuePress2 + GitHub Pages免费搭建个人博客网站

VuePress中文文档 | VuePress中文网

介绍

VuePress2

VuePress是基于Vue的静态网站生成器,风格简约,配置简单。VuePress2是VuePress的第二个主要版本,带来了许多新特性和改进,包括性能优化、更灵活的配置选项及对Vue3的支持

pnpm

你可以使用任意的包管理工具来搭建自己的博客,教程中使用的pnpm是一个快速、轻量级、模块化、安全、节省空间、可靠的包管理器。它与npm与yarn类似,但具有一些优势。在绝大多数场景下会比npm/yarn快2-3倍,可以高效利用磁盘空间。它与npm兼容,并且可以在npm的基础上构建。

搭建

安装 Node.js

没有安装node.js的话去Node.js官方下载安装包安装: Node.js

安装 pnpm

在命令行中输入指令安装

npm install pnpm -g

安装好查看版本号,若出现版本号说明已经安装成功

pnpm -v

克隆VuePress仓库

git clone https://github.com/vuejs/vuepress.git

安装 VuePress

step 1:创建文件夹并进入该目录

找一个你喜欢的位置创建文件夹,比如这里在F盘下创建了一个“una-blog”文件夹

image-20240614133832660

在命令行窗口里面进入该目录,如果创建的目录不在C盘下的话先切换盘符

# 切换盘符
F:
 
# 进入目录
cd una-blog
step 2:初始化项目
git init
​
pnpm init
step 3:安装VuePress
# 安装 vuepress 和 vue
pnpm add -D vuepress@next vue
​
# 安装打包工具和主题
pnpm add -D @vuepress/bundler-vite@next @vuepress/theme-default@next

image-20240614134106209

image-20240614134208215

step 4:在 package.json 中修改 scripts
"scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
}

打开package.json文件

image-20240614134304440

修改其中的scripts字段,修改前:

image-20240614134354237

修改后:

image-20240614134514424

step 5:创建目录和配置文件

创建目录:

mkdir docs
​
mkdir docs\.vuepress

创建 VuePress 配置文件 docs/.vuepress/config.js

import { viteBundler } from '@vuepress/bundler-vite'
import { defaultTheme } from '@vuepress/theme-default'
import { defineUserConfig } from 'vuepress'
 
export default defineUserConfig({
  bundler: viteBundler(),
  theme: defaultTheme(),
})

step 6:创建第一篇文档

echo '# Hello VuePress' > docs/README.md

以上命令在docs文件夹下添加README.md文件,并往文件中写入以下内容:

# Hello VuePress

docs/README.md 文件中的内容就是网站首页的内容。当然你也可以将 ‘# Hello VuePress’ 替换为任何你喜欢的文档内容。

step 6:将默认的临时目录和缓存目录添加到 .gitignore 文件中

创建完成后,你项目的目录结构应该是这样的:

├─ docs
│  ├─ .vuepress
│  │  └─ config.js
│  └─ README.md
└─ package.json

docs 目录是你放置 Markdown 文件的地方,它同时也会作为 VuePress 的源文件目录。

docs/.vuepress 目录,即源文件目录下的 .vuepress 目录,是放置所有和 VuePress 相关的文件的地方。当前这里只有一个配置文件。默认还会在该目录下生成临时文件、缓存文件和构建输出文件。建议你把它们添加到 .gitignore 文件中。

echo docs/.vuepress/.temp >> .gitignore
echo docs/.vuepress/.cache >> .gitignore
echo docs/.vuepress/dist >> .gitignore

以上命令会自动在文件夹下添加.gitignore文件,并往文件中写入以下内容:

docs/.vuepress/.temp
docs/.vuepress/.cache
docs/.vuepress/dist

这样,项目上传到github的时候就会忽略文件夹中这些文件。

step 7:启动服务器来开发你的文档网站
pnpm docs:dev

VuePress 会在 http://localhost:8080 启动一个热重载的开发服务器。当你修改你的 Markdown 文件时,浏览器中的内容也会自动更新。

注意:这时候运行访问可能会出现问题,具体解决方法看"遇到的问题";

image-20240614142142262

访问效果

image-20240614142731316

构建你的网站

运行 docs:build 脚本可以构建你的网站:

pnpm docs:build

在 docs/.vuepress/dist 目录中可以找到构建生成的静态文件。

基本布局

现在页面还比较简陋,我们可以进一步细化让页面初具雏形

添加导航栏

修改config.js,在首页的右上角添加导航栏、添加sidebar;

import { viteBundler } from '@vuepress/bundler-vite'
import { defaultTheme } from '@vuepress/theme-default'
import { defineUserConfig } from 'vuepress'
 
export default defineUserConfig({
    bundler: viteBundler(),
    theme: defaultTheme({
		title: 'Cream薄荷糖',
		description: 'Cream薄荷糖的云文档',
        // 在这里进行配置
        navbar: [
            // NavbarItem

            { text: '首页', link: '/', },
            // NavbarGroup
            {
                text: 'Cream薄荷糖的云文档',
                children: [
                    { text: 'Halo', link: '/使用 Docker 部署Halo' },
                    { text: '知乎', link: '/' },
                    { text: '掘金', link: '/' },
                ],
            },
        ],
        sidebar: [
            {
                text: '前言',
                collapsible: false,
                children: [
                    { text: '内容介绍' },
                    { text: '使用指南' }
                ]
            },
            {
                text: '算法学习',
                link: '/Algorithm/Divide&Conquer',
                collapsible: false,
                children: [
                    { text: '分治法', link: '/Algorithm/Divide&Conquer' }
                ],
            }
        ],
		themeConfig: {
			search: false,
			searchMaxSuggestions: 10
		}
    }),
})

效果图:

image-20240614142349930

目前的文档目录为:

├─ docs
│  ├─ .vuepress
│  │  └─ config.js
│  ├─ README.md
│  └─ Algorithm
│     └─ Divide&Conquer.md
└─ package.json

部署

此时一个简单的个人网站就已经搭好了,为了让别人也能访问到我们的网站,我们接下来将其部署到免费的Github Pages上(Github)。

新建仓库

我们在 Github 上新建一个仓库,这里我创建的仓库叫:「cloudnotes.github.io」(仓库名字可随意取)

注意:如果你的博客地址不想要有二级目录,仓库名就叫 「<你的用户名>.github.io」。如果你的仓库名为blog,那最后的博客地址就会是https://用户名.github.io/blog,比如 https://cloudnotes.github.io/blog*

image-20240615141228154

添加 base 路径配置

对应我们的仓库,我们需要在 config.js 添加 base 路径配置:

export default defineUserConfig({
    // 路径名为 “/<REPO>/”
    base: '/clrlov.github.io/',
    // ...
})

创建 GitHub Actions 配置文件

在你的项目根目录下,创建 .github/workflows 文件夹,然后创建 .github/workflows/docs.yml 文件来配置工作流。

在项目仓库打开 Settings->Actions->General:

image-20240615141517013

修改workflow permissions为 "Read and qrite permissions"

image-20240615141635338

提交项目到 github 仓库

在命令行依次执行以下代码,或者你也可以采用任何github仓库中code页签下给出的提交方式

注意 git remote add origin 后面的地址要改成你自己的仓库地址:

# git init 如果前面执行过,就不用再执行了
git init 

git add .

git commit -m "first commit"

git branch -M main

# 记得改成你自己的仓库地址
git remote add origin git@github.com:Creammint/cloudnotes.github.io.git

git push -u origin main

切换到Actions页签,可以看到已经成功

img

最后一步!

在Setting标签页中,侧边栏中选择Pages,Source 选择 "Deploy from a branch",然后在 Branch 标签下选择 gh-pages 分支和 /(root) 目录,点"Save"保存

img

然后我们可以在上方看到我们的博客地址

img

点击"Visit site"或者点击网址,就可以进入我们的博客了!大功告成

img

主题配置

VuePress、VuePress-theme-hope 搭建个人博客 1【快速上手】

vuepress-reco主题个人博客搭建-CSDN博客

vuepress-reco (recoluan.com)

遇到的问题

需要用安装Git执行

Vite 无法找到 @vuepress/plugin-theme-data/client 这个模块

[plugin:vite:import-analysis] Failed to resolve import "@vuepress/plugin-theme-data/client" from "docs/.vuepress/.cache/deps/chunk-ZUX32ECT.js?v=e7606edd". Does the file exist?

image-20240614091510446

检查插件的安装情况

确保 @vuepress/plugin-theme-data 已正确安装在您的项目中。您可以使用 npm 或 yarn 安装它:

npm install @vuepress/plugin-theme-data
# 或
yarn add @vuepress/plugin-theme-data

执行遇到如下问题

npm error "Cannot read properties of null (reading 'matches')" 错误通常表示在使用 npm 的过程中,某些依赖项或 npm 本身遇到了问题。以下是一些可能的解决方法:

清理 npm 缓存

缓存问题可能导致此错误,尝试清理 npm 缓存:

npm cache clean --force
删除并重新安装 node_modules 和锁文件

删除 node_modules 目录和锁文件(package-lock.jsonyarn.lock),然后重新安装依赖项:

rm -rf node_modules package-lock.json

npm install

如果使用的是 yarn:

rm -rf node_modules yarn.lock

yarn install
检查 npm 版本

有时候 npm 的某个版本可能有 bug,尝试更新 npm 到最新版本:

npm install -g npm@latest
检查 package.json

确保 package.json 文件中没有语法错误或无效的依赖项。您可以尝试运行以下命令来验证 package.json 文件:

npm run check
更新依赖项

更新项目中的所有依赖项,有时候某些依赖项的旧版本可能存在问题:

npm update
使用不同的 npm 源

尝试使用不同的 npm 源,如 npmjsyarn,以避免特定源的问题:

npm config set registry https://registry.npmjs.org/

或者使用 yarn:

yarn install