mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
1489 字
4 分钟
VitePress 教程:用 Vite 构建极速文档站点

VitePress 完全指南:用 Vite 构建极速文档站点#

在开发文档、技术博客或项目官网时,我们往往需要一款轻量、快速且易于定制的静态站点生成器。Vue 生态中的 VitePress 应运而生,它基于 Vite 构建,继承了 Vue 3 的响应式能力,让文档写作与页面开发融为一体。

本文将带你从零开始,在 Ubuntu 上搭建一个完整的 VitePress 站点,涵盖初始化、配置、主题定制到部署的全流程,助你打造极致的文档体验。

1. 什么是 VitePress?#

VitePress 是 Vue 驱动的静态站点生成器,由 Vue 核心团队成员开发,专门用于构建文档类网站。它利用 Vite 的高速 HMR(热模块替换)和 Vue 3 的 Composition API,提供了极佳的开发体验和首屏加载性能。

核心优势

  • 极速开发:基于 Vite,启动毫秒级,HMR 即时生效
  • Vue 驱动:可在 Markdown 中直接使用 Vue 组件,扩展性极强
  • 开箱即用:内置主题、搜索、导航栏、侧边栏等文档所需功能
  • 静态生成:构建时输出纯静态文件,可部署在任何静态托管服务
  • SEO 友好:生成标准 HTML,支持自定义元信息

2. 环境准备#

在 Ubuntu 上使用 VitePress,需要先安装 Node.js(版本 >= 18)和 npm 或 pnpm。

2.1 安装 Node.js#

# 使用 NodeSource 仓库安装 Node.js 18.x
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
# 验证安装
node -v # v18.x
npm -v

2.2 安装 pnpm(可选,推荐)#

VitePress 官方推荐使用 pnpm 作为包管理器,速度更快且节省磁盘空间。

sudo npm install -g pnpm

3. 创建 VitePress 项目#

3.1 初始化项目#

创建一个新目录并进入:

mkdir my-docs
cd my-docs

使用 pnpm 初始化 VitePress:

pnpm add -D vitepress

或者使用 npm:

npm add -D vitepress

3.2 运行向导#

VitePress 提供了便捷的初始化向导:

pnpm vitepress init

根据提示选择:

  • 标题:你的站点标题
  • 描述:站点描述
  • 是否启用 TypeScript:一般选 Yes
  • 是否需要自动安装依赖:Yes

完成后,项目结构如下:

my-docs/
├── docs/
│ ├── .vitepress/
│ │ └── config.js # 配置文件
│ ├── index.md # 首页
│ └── guide.md # 示例页面
├── package.json
└── node_modules/

3.3 启动开发服务器#

pnpm vitepress dev docs

默认访问 http://localhost:5173,即可看到默认主题的文档首页。

4. 目录结构详解#

docs/ # 文档根目录
├── .vitepress/ # 配置目录
│ ├── config.js # 站点全局配置
│ ├── theme/ # 自定义主题目录(可选)
│ └── dist/ # 构建输出目录(自动生成)
├── public/ # 静态资源(如图片、favicon)
├── index.md # 首页
├── guide/
│ ├── index.md # 指南首页
│ └── getting-started.md
└── ...

5. 基础配置#

配置文件位于 docs/.vitepress/config.js(或 .ts),导出默认配置对象。

5.1 站点元信息#

export default {
title: '我的技术文档',
description: '一个关于前端开发的文档站点',
lang: 'zh-CN',
head: [
['link', { rel: 'icon', href: '/favicon.ico' }]
]
}

5.2 主题配置#

主题配置控制导航栏、侧边栏、搜索等。

export default {
themeConfig: {
siteTitle: '我的文档',
logo: '/logo.png',
nav: [
{ text: '指南', link: '/guide/' },
{ text: 'API', link: '/api/' },
{ text: 'GitHub', link: 'https://github.com/your/repo' }
],
sidebar: {
'/guide/': [
{
text: '入门',
items: [
{ text: '介绍', link: '/guide/' },
{ text: '快速开始', link: '/guide/getting-started' }
]
},
{
text: '进阶',
items: [
{ text: '自定义主题', link: '/guide/custom-theme' }
]
}
]
},
socialLinks: [
{ icon: 'github', link: 'https://github.com/your/repo' }
],
footer: {
message: '基于 MIT 许可发布',
copyright: 'Copyright © 2024-present'
},
search: {
provider: 'local' // 本地搜索
}
}
}

6. 编写内容#

6.1 Markdown 扩展#

VitePress 支持标准 Markdown,并扩展了以下特性:

  • YAML Frontmatter:在 Markdown 文件顶部定义页面元信息。

    ---
    title: 指南
    sidebar: false
    ---
  • 代码高亮:自动支持大多数语言,也可通过 language 指定。

    ```js
    console.log('hello')
    ```
  • 自定义容器:用于提示、警告等信息。

    ::: tip
    这是一个提示
    :::
    ::: warning
    小心操作
    :::
    ::: danger
    危险区域
    :::
  • 导入代码片段:通过 <<< @/file.js 引入外部文件。

6.2 使用 Vue 组件#

在 Markdown 中可以直接使用 Vue 组件,增强交互性。组件需放置在 docs/.vitepress/theme/components/ 目录下,并在主题入口中注册。

示例:创建一个简单的计数器组件 Counter.vue

<script setup>
import { ref } from 'vue'
const count = ref(0)
</script>
<template>
<button @click="count++">点击次数:{{ count }}</button>
</template>

在 Markdown 中引用:

# 组件示例
<Counter />

7. 主题定制#

7.1 覆盖默认样式#

docs/.vitepress/theme/ 下创建 custom.css,然后修改配置:

.vitepress/theme/index.js
import DefaultTheme from 'vitepress/theme'
import './custom.css'
export default DefaultTheme

custom.css 示例:

:root {
--vp-c-brand: #42b883;
--vp-c-brand-light: #4cc78e;
}
.VPNavBar {
border-bottom: 1px solid #eee;
}

7.2 自定义布局#

VitePress 允许通过插槽自定义页面布局。例如,创建一个包含首页特殊内容的布局:

  1. docs/.vitepress/theme/components/Home.vue 中定义组件
  2. index.md 中指定布局:
---
layout: home
---

7.3 扩展主题#

你可以完全自定义主题,但更常见的是在默认主题基础上扩展。例如,添加全局组件:

.vitepress/theme/index.js
import DefaultTheme from 'vitepress/theme'
import MyComponent from './components/MyComponent.vue'
export default {
extends: DefaultTheme,
enhanceApp({ app }) {
app.component('MyComponent', MyComponent)
}
}

8. 部署#

8.1 构建静态文件#

pnpm vitepress build docs

构建产物位于 docs/.vitepress/dist

8.2 部署到 GitHub Pages#

  1. 在项目根目录创建 .github/workflows/deploy.yml
name: Deploy to GitHub Pages
on:
push:
branches: [ main ]
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: npm install -g pnpm
- run: pnpm install
- run: pnpm vitepress build docs
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/.vitepress/dist
  1. 推送代码到 GitHub,GitHub Actions 自动构建并部署到 gh-pages 分支。

  2. 在仓库设置中启用 GitHub Pages,选择 gh-pages 分支作为源。

8.3 部署到其他平台#

  • Vercel:导入项目,自动识别 VitePress,一键部署
  • Netlify:同样支持自动部署
  • 云服务器:将 dist 目录上传到服务器,配置 Nginx 即可

9. 高级特性#

9.1 多语言支持#

在配置文件中启用 locales

export default {
locales: {
root: {
label: 'English',
lang: 'en'
},
zh: {
label: '中文',
lang: 'zh-CN',
link: '/zh/'
}
},
themeConfig: {
nav: {
en: [{ text: 'Guide', link: '/guide/' }],
zh: [{ text: '指南', link: '/zh/guide/' }]
}
}
}

9.2 本地搜索#

VitePress 内置了基于 minisearch 的本地搜索,只需在配置中开启:

export default {
themeConfig: {
search: {
provider: 'local',
options: {
locales: {
zh: {
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '搜索'
},
modal: {
noResultsText: '无法找到相关结果',
resetButtonTitle: '清除查询条件',
footer: {
selectText: '选择',
navigateText: '切换'
}
}
}
}
}
}
}
}
}

9.3 自定义 404 页面#

创建 docs/404.md,内容自定义,VitePress 会自动生成 404 页面。

9.4 部署时的基本路径#

如果站点部署在子路径(如 https://username.github.io/my-docs/),需要在配置中设置 base

export default {
base: '/my-docs/'
}

10. 常见问题#

问题解决方法
图片无法显示使用绝对路径(以 / 开头)指向 public 目录下的资源;或在 Markdown 中使用相对路径,但需注意构建时路径处理
自定义组件未生效确保组件在 enhanceApp 中已注册,且组件文件路径正确
构建时报内存不足增加 Node 内存限制:NODE_OPTIONS="--max-old-space-size=4096" pnpm vitepress build docs
本地搜索无法搜索中文确认 locales 配置正确,且 search.options.locales 包含中文翻译
部署后样式丢失检查 base 路径是否配置正确,若部署在子路径,需设置 base

11. 总结#

VitePress 凭借 Vite 的极速体验和 Vue 的灵活性,成为文档站点的绝佳选择。本文介绍了在 Ubuntu 上搭建 VitePress 的全过程,从初始化到部署,涵盖了日常使用所需的核心知识。

无论你是为开源项目编写文档,还是打造个人技术博客,VitePress 都能助你高效产出,且获得极致性能。开始你的 VitePress 之旅吧!

进一步学习资源

温馨提示:保持文档结构清晰、内容准确,定期更新。好的文档是项目成功的一半!

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

VitePress 教程:用 Vite 构建极速文档站点
http://blog.mcstarland.top/posts/vitepress/
作者
MEMZGBL
发布于
2026-03-22
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00