什么是 VitePress?

VitePress 是 VuePress 的小弟弟,在 Vite 上构建的。

动机

主要是因为太慢!但是不怪 VuePress,怪 Webpack!

Vite 则非常好的解决了问题:

  1. 几乎实时的服务启动
  2. 根据需要编译页面
  3. 非常轻量快速的 HMR(热模块重载)

另外,本身 VuePress 一些设计问题一直没有时间去修复,正好这次做个大重构。

改进的地方

用了 Vue 3

  1. 利用了 Vue 3 的改进的模板静态分析来尽可能字符串化静态内容
  • 静态内容以字符串模式而不是渲染函数代码发送,JS 负载更便宜,注水(SSR 时生成 js 交互逻辑代码)也更快
  • 这些优化仍然允许在 markdown 中混合使用 Vue 组件,编译器会帮你处理静态/动态分离工作
  1. 使用了 Vite
  • 更快的 dev 服务器启动
  • 更快的热更新
  • 更快的构建(使用 Rollup)

更轻量的页面

  • Vue 3 树摇 + Rollup 代码分离
  • 不会把所有页面的元数据都在一个请求中发送出去。客户端导航时再一起获得新页面的组件及元数据
  • 没有用 vue-router,写了个轻量的路由(200 行代码)
  • (WIP)i18n本地化数据根据需要请求

其他不同点

  • VitePress 更武断且更少的配置。VitePress目标是缩减掉当前 VuePress 的复杂性并从其极简主义的根源重新开始
  • VitePress 是面向未来的:其目标浏览器是只支持原生 ES 模块导入的浏览器。其鼓励使用原始的 JavaScript 而不用转义以及使用 CSS 变量来主题化

将来这会是 VuePress 的下一版本么?

可能不会。

  1. 避免影响 VuePress 当前的主题和插件生态
  2. 核心逻辑是更少的主题 API(倾向于 JavaScript API 而不是文件布局方式)且没有插件(所有的定制都在主题内)