Skip to content

如何优化 Vitepress 的构建速度?

VitePress的底座是Vite,热更新与构建速度,对比其它Webpack方案,优势已经非常明显了,但是依然有优化空间。

尝试1500文档,构建build时间:

text
> vitepress build docs

  vitepress v1.3.4

/ building client + server bundles...
(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ building client + server bundles...
✓ rendering pages...
✓ generating sitemap...
build complete in 175.93s.

当项目的Markdown文件很多时,编译构建要几分钟才能完成。

可能影响也不大,而且大部分项目都没这么多文档,但是这个问题是存在的,采取一些措施,还是可以尽可能的提高效率。

一、善用缓存机制

就像“好记性不如烂笔头”,缓存能帮我们记住那些已经处理过的东西,避免重复劳动。在 Vitepress 中,合理配置缓存可以大大提高构建速度。

VitePress默认是开启缓存的,默认缓存目录docs/.vitepress/cache

这样一来,Vitepress 就会把一些构建过程中的中间结果保存下来,下次构建时,如果相关内容没有变化,就能直接从缓存中读取,“一步到位”,节省大量时间。

二、精简依赖

“兵在精而不在多”,项目中的依赖也是如此。过多不必要的依赖会拖慢构建速度。

定期审查 package.json 文件,去除那些不再使用的或者可以用更轻量级替代的依赖。比如说,如果某个功能模块只是偶尔用到,而且体积较大,不妨考虑在需要的时候再动态引入。

三、优化图片处理

图片可是网页中的“重量级选手”,处理不好就会让构建速度“老牛拉破车”。

压缩图片大小,选用合适的图片格式(如 WebP),并且利用 Vitepress 的图片懒加载功能,让图片在真正需要显示的时候再加载,能有效地减轻构建时的负担。

有条件可以使用外链图片。

没条件必须使用本地图片,可以每次写完文档,检查一下图片文件夹,对大图做个批量压缩。如果是自己的独立站,这个动作能给你节省不少流量钱。

四、利用预构建

“凡事预则立,不预则废”,Vite的预构建在 Vitepress 中也能用。

通过配置预构建,可以提前处理一些复杂的模块或者库,减少构建时的计算量。

五、代码分割

“分而治之”是个好策略,在 Vitepress 中进行代码分割也不例外。

将代码按照功能模块分割成多个小块,只在需要的时候加载相应的模块,避免一次性加载过多不必要的代码,从而提高构建和加载速度。

总结

前面列出了一些优化方法,其实Vite的优化手段,基本都能用在VitePress项目上。