news 2026/9/21 2:15:38

VitePress 命令行接口(CLI)完整参考:dev / build / preview / init 命令实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VitePress 命令行接口(CLI)完整参考:dev / build / preview / init 命令实战指南
  • 前端
  • 文档

【免费下载链接】vitepress

Vite & Vue powered static site generator.

项目地址:https://gitcode.com/gh_mirrors/vi/vitepress
点击查看免费下载

本篇指南基于 VitePress 官方文档 命令行接口参考 展开,系统讲解vitepress devvitepress buildvitepress previewvitepress init四个核心命令的用法、选项参数与底层实现原理。读完本文,你将掌握本地开发、生产构建、产物预览与项目初始化四条完整工作流,并能结合 src/node/cli.ts 的源码理解每个命令背后的解析与执行逻辑。

VitePress 的所有 CLI 命令都通过bin字段注册为vitepress可执行文件(见 package.json),默认以当前目录作为站点根目录。命令行入口 src/node/cli.ts 使用minimist解析参数,并将形如--force的布尔参数从字符串"true"/"false"归一化为真正的布尔值,再根据第一个位置参数分发到devinitbuildserve/preview四个分支。

命令总览

命令作用常用场景
vitepress dev(可省略)启动开发服务器本地编写与预览文档
vitepress build构建生产版本部署前的静态产物生成
vitepress preview(别名serve本地预览生产构建产物验证构建结果、检查 base 路径
vitepress init交互式安装向导初始化新站点脚手架

其中vitepressvitepress dev等价:在 src/node/cli.ts 中,当command为空或为dev时都会进入开发服务器启动分支。servepreview的兼容别名,两者在 src/node/cli.ts 中走同一执行路径。

vitepress dev:启动开发服务器

使用指定目录作为根目录启动 VitePress 开发服务器,默认根目录为当前目录。

用法

# 从当前目录启动,`dev` 可省略 vitepress # 从子目录启动 vitepress dev [root] # 例如 vitepress dev docs

当省略dev直接运行vitepress时,第一个位置参数即被解释为根目录,源码中的对应逻辑为const root = argv._[command ? 1 : 0](src/node/cli.ts)。

选项

选项说明
--open [path]启动时打开浏览器(boolean \| string)。不带值则打开默认页面,带值可指定路径
--port <port>指定端口(number),默认由 Vite 自动选择可用端口
--base <path>public base URL,默认值/string
--cors启用 CORS,便于跨域调试
--strictPort若指定端口已被占用则直接退出(boolean),而非自动换端口
--force强制优化程序忽略缓存并重新绑定(boolean

源码实现与快捷键

--force选项在 CLI 入口被转换为optimizeDeps: { force: true }传入 Vite(src/node/cli.ts),用于清除依赖预构建缓存。开发服务器通过 createServer 创建,其内部将srcDir作为 Vite 根目录、把site.base作为 Vite base,并挂载由 createVitePressPlugin 生成的一组插件(rewrites、Vue 编译、web fonts、assetsBase、icons、local search、静态数据与动态路由等)。

vitepress dev启动后支持终端快捷键(由 shortcuts.ts 注册,仅在交互式 TTY 且非 CI 环境下生效):

按键功能
h显示快捷键帮助
r重启开发服务器(会重新解析配置、清理 Markdown 编译缓存)
u显示服务器地址
o在浏览器中打开站点
c清空控制台
qCtrl+C/Ctrl+D退出并关闭服务器

配置项(.vitepress/config)或相关依赖文件变更时,服务器会自动重启(见 plugin.ts 的hotUpdate处理)。

vitepress build:构建生产版本

执行生产环境构建,产出可直接部署的静态站点。

用法

vitepress build [root]

选项

选项说明
--mpa(实验性)以 MPA 模式 构建,无客户端激活(boolean)。开启后每个页面独立加载,需在.vitepress/config中同时设置mpa: true以获得完整效果
--base <path>public base URL,默认值/string)。构建时传入会被normalizeSiteBase规范化(src/node/build/build.ts),例如--base /docs/
--target <target>转译目标,默认值"modules"string),透传给底层打包器
--outDir <dir>输出目录,默认值.vitepress/diststring)。CLI 传入的路径会以process.cwd()为基准解析为绝对路径(src/node/build/build.ts)
--assetsInlineLimit <number>静态资源 base64 内联阈值(字节),默认值4096number)。小于该值的资源会以内联形式嵌入产物

构建流程

构建入口 build 的执行步骤为:

  1. 设置NODE_ENV = production并解析站点配置;
  2. 依次处理--base--assetsBase--mpa--outDir等命令行覆盖项;
  3. 并行构建客户端与服务端(SSR)bundle(building client + server bundles);
  4. 逐页渲染 HTML(rendering pages),并清理临时目录;
  5. 若配置了sitemap.hostname,最后生成sitemap.xml(见 generateSitemap.ts)。

输出目录由 config.ts 解析:默认outDir<root>/dist(即.vitepress/dist),静态资源子目录assetsDir默认assets,且assetsDir不允许超出outDir范围。

vitepress preview:本地预览生产版本

在本地启动一个静态服务器预览vitepress build的产物,用于上线前检查最终效果。

用法

vitepress preview [root]

previewserve是同一命令的两种写法,二者在 src/node/cli.ts 中共同路由到 serve。

选项

选项说明
--base <path>public base URL,默认值/string
--port <port>指定端口(number),默认4173

实现要点

预览服务器基于polka + sirv实现(src/node/serve/serve.ts),关键行为包括:

  • 默认端口为 4173(src/node/serve/serve.ts);
  • 读取outDir下的静态产物,对带指纹的静态资源设置immutable长缓存,对不带指纹的 HTML 等文件设置no-cache强制校验(src/node/serve/serve.ts);
  • 相对 base(isRelativeBase)统一在根路径提供服务,绝对 URL base 则取其 pathname(src/node/serve/serve.ts);
  • 未匹配路径回落到构建产物中的404.html(src/node/serve/serve.ts),可据此验证自定义 404 页面。

vitepress init:交互式安装向导

在当前目录启动交互式向导,快速初始化 VitePress 站点。

用法

vitepress init

向导步骤

向导基于@clack/prompts实现(init.ts),依次询问:

  1. 配置初始化目录(默认./);
  2. Markdown 源文件目录(默认与根目录相同);
  3. 站点标题(默认My Awesome Project);
  4. 站点描述(默认A VitePress Site);
  5. 主题类型:
    • Default Theme:开箱即用的默认主题;
    • Default Theme + Customization:额外生成自定义 CSS 与布局插槽;
    • Custom Theme:生成完整自定义主题骨架(含Layout.vue);
  6. 是否使用 TypeScript 编写配置与主题文件;
  7. 是否向package.json注入 npm scripts(dev/build/preview);
  8. 是否给脚本添加前缀(默认前缀docs,即生成docs:dev等)。

生成的脚手架文件因主题类型而异(init.ts):默认主题生成index.mdapi-examples.mdmarkdown-examples.md.vitepress/config.js;选择自定义主题还会追加.vitepress/theme/index.jsstyle.cssLayout.vue。若package.json中缺少vue依赖且选择了自定义主题,向导会提示显式安装vue;如果检测到.git目录,还会提醒将.vitepress/dist.vitepress/cache加入.gitignore(init.ts)。

向导结束后会打印下一步命令,例如npm run docs:dev(注入脚本时)或npx vitepress dev(未注入脚本时)。

常见组合工作流

将上述命令串联起来,便是一条完整的文档站点生命周期:

# 1. 初始化站点(仅首次) vitepress init # 2. 本地开发 vitepress dev docs # 或 npm run docs:dev # 3. 构建生产产物 vitepress build docs # 输出到 docs/.vitepress/dist # 4. 本地验证产物 vitepress preview docs --port 8080 # 5. 部署时指定 base 与输出目录 vitepress build docs --base /my-site/ --outDir ./public

如果构建或启动过程中出现错误,CLI 会通过logErrorAndExit打印错误信息并以非零状态码退出(src/node/cli.ts);对于未知命令,同样会报错退出(src/node/cli.ts)。

相关文档与源码索引

  • 命令官方参考:docs/zh/reference/cli.md(另有 英文版 及 es/fa/ja/ko/pt/ru/zh 多语言版本)
  • CLI 入口与命令分发:src/node/cli.ts
  • 开发服务器创建:src/node/server.ts
  • 生产构建主流程:src/node/build/build.ts
  • 预览服务器实现:src/node/serve/serve.ts
  • 安装向导实现:src/node/init/init.ts
  • 终端快捷键:src/node/shortcuts.ts
  • MPA 模式指南:docs/zh/guide/mpa-mode.md
  • 快速上手(含安装向导说明):docs/zh/guide/getting-started.md
  • 前端
  • 文档

【免费下载链接】vitepress

Vite & Vue powered static site generator.

项目地址:https://gitcode.com/gh_mirrors/vi/vitepress
点击查看免费下载
上一篇:任天堂Switch模拟器调试终极指南:GDB与LLDB在yuzu核心模块的高效使用
下一篇:如何用Penpot实现完美移动适配:响应式设计与移动端优化全指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/21 2:14:47

STEP转GLB全流程指南:从CAD精确模型到Web三维展示

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/21 2:14:28

嵌入式开发从入门到实践:系统学习路线与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/21 2:13:06

用疫情数据实战回归预测:从滞后特征到数据泄漏避坑指南

1. 为什么拿疫情数据练回归模型1.1 这不是蹭热点&#xff0c;是一个回归问题最好的入门样本在机器学习的各类任务里&#xff0c;回归是最基础、也最容易被低估的一种。很多人习惯用房价预测、波士顿房价、加利福尼亚房价做演示&#xff0c;但这些数据集已经被写烂了&#xff0c…

作者头像 李华
网站建设 2026/9/21 2:12:51

GJB 5109A-2022装备计量保障新规解读:检测校准与期间核查落地要点

简介&#xff1a;GJB 5109A-2022《装备计量保障通用要求 检测和校准》国家军用标准最新版全文PDF&#xff0c;面向装备研制、试验鉴定、订购及使用保障等环节的计量管理人员、质量工程师和标准化从业者&#xff0c;用于替代旧版GJB 5109-2004。文件为1个PDF文档&#xff0c;压缩…

作者头像 李华