VitePress:基于 Vite 的静态站点生成器
文章目录
- VitePress:基于 Vite 的静态站点生成器
- 文档
- 主要特性
- 使用方式
- 配置
- 生态支持
- 适用场景
- 协议
- 协议
VitePress:基于 Vite 的静态站点生成器
vuejs 团队开源的 VitePress,目前已在 GitHub 收获 17,970 个 Star:
VitePress 是一个基于 Vue 的静态站点生成器,是 VuePress 的精神继承者,构建在 Vite 之上。
它结合了 Vue 的组件能力与 Vite 的快速构建特性,适合用于文档站点、技术博客以及小型项目的展示页面。
早期写文档多用 VuePress,但随着项目体积增长,冷启动和热更新速度成为痛点。VitePress 用 Vite 替换 webpack,开发体验有明显改善,启动和热更新几乎做到毫秒级响应。
VitePress 内置支持 Markdown 扩展语法,可以在 Markdown 中直接使用 Vue 组件,也可以使用 Vue 的模板语法、计算属性、自定义指令等能力。
文档
VitePress 的官方文档地址是 vitepress.dev,里面包含从入门到进阶的完整教程,包括配置、部署、主题定制、组件使用以及常见问题的解决方案。
主要特性
VitePress 内置的功能覆盖了文档站点常见的几类需求:
- **Markdown 扩展:**支持表格、任务列表、数学公式、代码块语法高亮、代码组切换、行高亮等
- **Vue 支持:**可以在 Markdown 中直接使用 Vue 组件,支持单文件组件以及自动导入组件
- **主题定制:**默认主题提供导航栏、侧边栏、搜索、深色模式、i18n 国际化等开箱即用功能,也可以完全自定义主题
- **构建优化:**基于 Vite 的构建链路,支持按需加载、自动压缩资源、PWA 等特性
- **SEO 友好:**生成静态 HTML,自带 sitemap、robots.txt 等配置项
使用方式
VitePress 的安装方式比较简单,通过 npm 或 yarn 添加依赖即可:
npmadd-Dvitepress初始化项目目录结构:
. ├─ docs │ ├─ index.md │ ├─ guide │ │ └─ getting-started.md │ └─ .vitepress │ └─ config.ts └─ package.json在 package.json 中添加几个脚本命令:
{"scripts":{"docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"}}本地启动开发服务器:
npmrun docs:dev构建生产版本:
npmrun docs:build构建产物默认输出到 docs/.vitepress/dist 目录,可以直接部署到 Vercel、Netlify、GitHub Pages 或任意静态文件托管服务。
配置
VitePress 的配置文件位于 docs/.vitepress/config.ts(或 config.js),常见的配置项包括站点标题、描述、主题配置、head 注入、markdown 配置等:
import{defineConfig}from'vitepress'exportdefaultdefineConfig({title:'My Docs',description:'项目文档',themeConfig:{nav:[{text:'指南',link:'/guide/getting-started'}],sidebar:[{text:'指南',items:[{text:'快速开始',link:'/guide/getting-started'}]}]}})生态支持
VitePress 由 VoidZero 团队提供长期支持,构建链路依赖于 Vite、Vitest、Rolldown 和 Oxc 等高性能 JavaScript 工具链。
StackBlitz 为 VitePress 提供了在线 Playground 支持,pull request 可以生成即时预览链接,方便协作评审。
Algolia 为 VitePress 提供了 DocSearch 能力,文档站点接入后可实现快速全文检索。
BrowserStack 提供跨浏览器和真实设备的测试基础设施,用于保障 VitePress 在各浏览器中的表现一致性。
适用场景
VitePress 适合以下几类使用场景:
- 开源项目或产品文档站点
- 个人技术博客
- 团队内部知识库
- 简单的产品落地页
如果项目对 SSR、动态路由、用户系统有较重需求,VitePress 不一定合适,这类场景可以考虑 Nuxt 或其他 SSR 框架。
协议
VitePress 以 MIT 协议开源,由 Yuxi (Evan) You 自 2019 年起持续维护,可以自由用于商业或个人项目。
有较重需求,VitePress 不一定合适,这类场景可以考虑 Nuxt 或其他 SSR 框架。
协议
VitePress 以 MIT 协议开源,由 Yuxi (Evan) You 自 2019 年起持续维护,可以自由用于商业或个人项目。