likes
comments
collection
share

Docusaurus 3.2 发布,更快的 MDX 开发体验

作者站长头像
站长
· 阅读数 2

Docusaurus 是一个静态站点生成器。它构建了一个具有快速客户端导航的单页面应用程序,利用 React 的全部功能使你的网站具有交互性。它提供开箱即用的文档功能,但可用于创建任何类型的网站(个人网站、产品、博客、营销登陆页面等)。

近日,Docusaurus 发布了最新的 3.2 版本,努力减少了在生产模式下构建 Docusaurus 网站所需的时间。在 3.1 和 3.2 之间,Docusaurus 进行了几项更改,使得许多网站的生产构建速度显著加快。

下面就让我们一起来看一下新版本还有什么亮点吧!

Docusaurus 3.2 发布,更快的 MDX 开发体验

性能提升亮点

让我们举个例子,我们在升级到 v3.2 的 React Native 网站上进行的基准测试报告了以下结果:

  • 🔥 冷构建:95 秒 ➡️ 66 秒(快 30%)
  • 🔥 增量构建:55 秒 ➡️ 22 秒(快 60%)

结果将根据你站点的拓扑和你打开的选项而有所不同,但我们预计最大的站点将看到最显着的改进。

请注意,这只是开始,Docusaurus 性能仍然可以显着提高,特别是捆绑时间和内存消耗。跟踪我们的性能问题以了解即将进行的改进。

冷构建和增量构建有什么区别?

冷构建是指 Docusaurus 缓存为空时,通常是在运行后 docusaurus clear。

当你再次运行该 docusaurus build 命令时,就会发生增量构建。Docusaurus 自动尝试重用以前构建的计算,以使后续构建更快。实际上它是基于 Webpack 持久缓存。要在 CI 服务器上启用增量构建,你可以保留 node_modules/.cache 文件夹。

更快的开发服务器

我们还致力于提高开发服务器的性能,以便你在编辑 Markdown/MDX 文件时可以获得更快的反馈。

我们最初实现内容重新加载的方式并不好。例如,编辑博客文章文件也会触发无关文档插件的无用重新加载。从现在开始,当编辑插件的内容时只有该插件才会重新加载。很难精确衡量这一变化的影响,但估计浏览器中出现的编辑速度应该至少快 50%。

我们计划不断提高开发服务器的速度,通过更精细的热重载,确保我们不会运行总是给出相同结果的无用计算。

MDX 部分

Docusaurus 现在能够将来自导入的部分的标题呈现到目录中。

Docusaurus 和 MDX 允许你将一个 Markdown 文件导入到另一个。我们通常将导入的 Markdown 文件称为部分,并使用前缀 _,以便该文件不会导致创建新页面。

# My Doc

## Doc heading

Content is imported from another MDX file:

import ImportedDoc from './\_importedDoc.mdx';

<ImportedDoc />

## Partial heading

Some paragraph

以前,标题 Partial heading 不会出现在目录中,但现在它会出现!

博客插件增强

  • 新增显示博客文章的最后更新时间和作者。
  • 新增 processBlogPosts 选项,可对博客文章进行过滤、转换、排序。
  • 新增 pageBasePath 选项,自定义博客分页URL段。

站点地图增强

新增 lastmod 选项,支持在 XML 中输出 <lastmod> 标签,通常从 Git 历史读取,也可通过文档和博客的 last_update frontmatter 自定义。

其他改进

  • 新增 Vercel Analytics 插件。
  • docusaurus swizzlecreate-docusaurus CLI 现在会询问用户是否偏好使用 TypeScript。
  • 新增冰岛语翻译。
  • 新增 allContentLoaded 插件生命周期(实验性)。

立即体验 Docusaurus 3.2 带来的速度与灵活性,让文档和网站构建更上一层楼!