返回项目目录
前端框架精选项目

VuePress

由 Vue 驱动、支持 Vite 与 Webpack Bundler,并拥有独立插件和主题生态的静态站点生成器。

主要语言TypeScript
开源许可MIT
项目类型前端框架
维护状态活跃维护
OVERVIEW

项目概述

VuePress 以 Markdown 为内容中心,将文件路由编译为预渲染 HTML 和 Vue 单页应用。它把核心、Bundler、主题和插件拆分为独立层,适合需要灵活扩展的文档、博客与静态网站。

VuePress 由社区维护并采用 MIT 许可证,最初为 Vue 及其子项目文档而创建。VuePress 2 使用 Vue 3 和 Vue Router,将每个 Markdown 文件解析为 HTML 后作为 Vue 组件模板处理;开发阶段以 SPA 运行,生产构建则为每条路由生成服务端渲染的静态 HTML。它把核心能力与 Bundler、主题和插件解耦,可在 Vite 与 Webpack 之间选择,并通过官方生态仓库组合默认主题、搜索、PWA 等能力。

当前版本2.0.0-rc.26
最低 Node.js20.9
可选 BundlerVite / Webpack
FEATURES

主要特点

VuePress 通过分层架构、Vue 增强 Markdown 和插件生态,为内容网站提供可组合的构建基础。

01

Markdown 文件路由

内容文件的相对路径自动生成页面路由,README.md 对应目录首页,并支持 Frontmatter 控制页面元数据。

02

Vue 增强内容

Markdown 会作为 Vue 组件模板处理,可以使用模板语法、内置组件和自行注册的 Vue 组件。

03

静态预渲染与 SPA

构建时为各路由生成 HTML,首次访问利于 SEO,客户端接管后使用 Vue Router 进行页面切换。

04

可替换 Bundler

核心不绑定单一构建器,官方同时维护 Vite 与 Webpack Bundler,团队可按兼容性和工具链选择。

05

主题系统

主题本质上是返回 VuePress Plugin 的函数,可提供布局、客户端代码、样式与默认配置,并支持继承。

06

插件生命周期

插件可扩展配置、Markdown、页面、客户端文件、Bundler 选项和构建生命周期,并被主题复用。

07

客户端配置入口

client.ts 可增强 Vue 应用、注册组件、运行组合式逻辑、添加根组件,并访问路由与站点数据。

08

站点与主题国际化

路径 Locale 定义不同语言的标题、描述和内容目录,主题再提供语言切换器与界面文本。

USE CASES

适用场景

适合希望继续使用 Vue 组件,同时需要选择 Bundler、主题或大量内容插件的文档与静态站点。

Vue 生态项目文档

适合安装指南、组件说明、配置参考和可运行 Vue 示例,与现有组件库共享技术栈。

插件驱动的文档门户

当站点需要搜索、PWA、评论、代码演示或自定义 Markdown 转换时,可从生态中组合插件。

需要 Webpack 兼容的迁移项目

可选择 Webpack Bundler 承接依赖特定 Loader 或旧构建集成的 VuePress 1 网站。

团队知识库

Markdown、Git、导航和静态输出适合工程规范、架构决策、运行手册和内部培训材料。

博客与内容网站

自定义主题、页面数据和插件可以建立文章列表、标签、归档、作者信息和订阅能力。

多语言项目站

Locale 目录和主题国际化配置适合维护不同语言的首页、文档导航及界面文本。

EVALUATION

优点与注意事项

技术选型不仅要看能力,也要理解它带来的团队成本。

主要优点

VuePress 擅长的地方

  • Markdown 与 Vue 组件自然组合,适合 Vue 开发团队
  • Vite 和 Webpack Bundler 可选,能兼顾新项目速度与旧生态兼容
  • 核心、主题、插件和 Bundler 分层清晰,扩展边界明确
  • 官方生态提供主题、搜索及多种常见功能插件
  • 静态 HTML 部署简单,并保留 Vue Router 的客户端导航体验
  • TypeScript 配置、插件与主题 API 便于构建可维护的内容平台

需要注意

采用前应考虑的问题

VuePress 2 仍是 RC

官方明确说明配置和 API 尚未完全稳定,RC 版本升级仍可能包含小型破坏性变化。

相关包必须保持兼容

核心、Bundler、默认主题和插件分别发布,混用不同 RC 代际可能产生类型、构建或运行错误。

生态分布较分散

核心、官方生态、市场和社区主题分别维护,采用插件前应核对目标 VuePress 版本和最近维护状态。

VuePress 1 迁移并非原地升级

VuePress 2 使用 Vue 3,主题、插件和配置 API 均有变化,应按迁移指南逐项替换而不是只更新依赖。

交互代码需要兼容 SSR

页面会在 Node.js 中预渲染,直接访问 window 或 document 的逻辑应放入客户端生命周期或专用组件。

相比 VitePress 配置更多

Bundler、主题和插件都需显式安装与配置;如果只需快速轻量文档,VitePress 通常更直接。

QUICK START

快速开始

使用官方创建工具初始化项目,配置 Vite Bundler 和默认主题,编写 Vue 增强 Markdown,再加入客户端配置与多语言入口。

1使用官方工具创建项目
bash
npm init vuepress open-docs
cd open-docs
npm install
npm run docs:dev
2手动安装核心、Bundler 与主题
bash
mkdir open-docs
cd open-docs
npm init -y

npm install -D vuepress@next
npm install -D @vuepress/bundler-vite@next
npm install -D @vuepress/theme-default@next

mkdir -p docs/.vuepress
3配置 Vite Bundler 与默认主题
typescript
// docs/.vuepress/config.ts
import {viteBundler} from "@vuepress/bundler-vite";
import {defaultTheme} from "@vuepress/theme-default";
import {defineUserConfig} from "vuepress";

export default defineUserConfig({
  lang: "zh-CN",
  title: "Open Docs",
  description: "清晰、可扩展的项目文档",

  bundler: viteBundler(),

  theme: defaultTheme({
    navbar: [
      {text: "指南", link: "/guide/"},
      {text: "参考", link: "/reference/"},
    ],
    sidebar: {
      "/guide/": [
        {
          text: "使用指南",
          children: [
            "/guide/README.md",
            "/guide/getting-started.md",
          ],
        },
      ],
    },
    repo: "open-docs/website",
  }),
});
4编写 Vue 增强的 Markdown
markdown
---
title: 快速开始
description: 安装并运行 Open Docs
---

<script setup>
import {ref} from "vue";

const count = ref(0);
</script>

# 快速开始

VuePress 会把 Markdown 编译为 Vue 组件模板。

当前点击次数:{{ count }}

<button @click="count++">增加</button>

::: tip
普通内容仍然保持清晰的 Markdown 写法。
:::
5注册全局客户端组件
typescript
// docs/.vuepress/client.ts
import {defineClientConfig} from "vuepress/client";
import VersionBadge from "./components/VersionBadge.vue";

export default defineClientConfig({
  enhance({app}) {
    app.component("VersionBadge", VersionBadge);
  },
  setup() {
    // 在客户端应用根部运行组合式逻辑
  },
  rootComponents: [],
});
6增加英文 Locale
typescript
// docs/.vuepress/config.ts
import {viteBundler} from "@vuepress/bundler-vite";
import {defaultTheme} from "@vuepress/theme-default";
import {defineUserConfig} from "vuepress";

export default defineUserConfig({
  bundler: viteBundler(),
  locales: {
    "/": {
      lang: "zh-CN",
      title: "Open Docs",
      description: "项目文档",
    },
    "/en/": {
      lang: "en-US",
      title: "Open Docs",
      description: "Project documentation",
    },
  },
  theme: defaultTheme({
    locales: {
      "/": {selectLanguageName: "简体中文"},
      "/en/": {selectLanguageName: "English"},
    },
  }),
});
7添加脚本并构建
json
{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}
8生成生产静态文件
bash
npm run docs:build

# 构建结果位于 docs/.vuepress/dist
# 使用任意静态文件服务器预览或部署

下一步:VuePress 2 仍处于 RC 阶段,应固定 vuepress、Bundler、主题和官方插件的确切版本,并在每次升级前阅读 Changelog、执行完整构建和检查主题 API。

ALTERNATIVES

类似项目

这些项目同样构建 Markdown 内容站;VuePress 的主要差异是可替换 Bundler 与更独立的插件、主题体系。

COMPARISON

VuePress vs VitePress

VuePress 与 VitePress 都以 Markdown、Vue 和静态预渲染构建内容网站。VuePress 2 强调可替换 Bundler、独立主题与插件生态;VitePress 与 Vite 深度集成,更强调轻量配置、构建速度和精致的默认文档体验。

比较维度VuePressVitePress
维护团队独立 VuePress 社区团队Vue.js 核心团队
版本状态2.0 RC,API 仍可能小幅调整1.6.4 稳定线,2.0 Alpha 并行开发
Bundler官方支持 Vite 或 Webpack与 Vite 深度绑定
扩展体系独立 Plugin、Theme、Bundler 与生态仓库Vite Plugin、默认主题扩展和自定义 Vue 主题
Markdown 组件Markdown 作为 Vue 组件模板处理Markdown 作为 Vue SFC 处理并优化静态内容
默认体验显式组合核心、Bundler 与主题更集成的技术文档主题与代码功能
迁移与兼容可用 Webpack 承接部分旧工具链需求更适合全新 Vite/Vue 3 内容项目
更适合重视插件、主题和 Bundler 可替换性追求快速、轻量和默认文档体验
如何选择

如果现有 VuePress 项目依赖主题、插件或 Webpack,或者团队希望自建可复用的内容平台扩展层,VuePress 2 更具可组合性;如果新项目主要需要快速技术文档、Vite 开发体验和更少配置,VitePress 通常更直接。由于两者都存在下一代预发布线,选型时应锁定版本并用真实主题、插件和内容规模验证升级成本。

VERIFICATION

资料核验

版本、维护信息与本页采用的官方资料来源。

最后核验2026 年 7 月 26 日
核验版本2.0.0-rc.26
内容维护Docs100 编辑整理
项目维护状态活跃维护

本次核验覆盖 VuePress 2 的 RC 状态、Node.js 要求、Markdown 与 Vue 渲染方式、Vite/Webpack Bundler、主题、插件、客户端配置和国际化能力。官方仓库仍有近期提交,但 RC API 可能变化,升级前应固定整套包版本并阅读 Changelog。

维护状态核验2026 年 7 月 26 日 · 最近可见代码活动:2026 年 7 月 24 日

官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 24 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。

查看官方仓库