Docusaurus 3.2
我们很高兴地宣布推出 Docusaurus 3.2。
升级应该很容易:正如我们在发布流程文档中所解释的那样,次要版本遵循语义版本控制。
亮点
更快的构建
我们努力减少构建 Docusaurus 站点在生产模式下的时间。
在 v3.1.0 和 v3.2.0 之间,进行了多项更改,导致许多站点的生产构建速度显著提高。
让我们举个例子。我们在升级到 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 部分目录
使用#9684,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
不会出现在目录中,但现在会了!
博客改进
我们使用几个新选项改进了博客插件,使其更加强大和灵活
- #9912:您现在可以显示博客文章的最后更新时间和作者,这是文档插件已经具有的功能。
- #9886:一个新的
processBlogPosts
选项允许您过滤/转换/排序博客文章。 - #9838:一个新的
pageBasePath
选项允许您自定义博客分页 URL 段(/blog/page/2
)
站点地图 lastmod
使用#9954,站点地图插件现在有一个新的 lastmod
选项,现在可以在 XML 上发出 <lastmod>
标记。默认情况下,该值从 Git 历史记录中读取,但可以使用文档和博客 last_update
前置 matter 覆盖。
我们还使其能够选择不发出 <priority>
和 <frequency>
标记,这些标记通常会被爬虫忽略(尤其是Google)。
我们建议使用以下站点地图插件配置,这将在 Docusaurus V4 中成为默认配置
{
lastmod: 'date',
priority: null,
changefreq: null,
}
其他更改
- #9687:新的 Vercel Analytics 插件
- #9681 和 #9442:
docusaurus swizzle
和create-docusaurus
CLI 现在会询问用户是否更喜欢使用 TypeScript - #9928:新的冰岛语翻译
- #9928:新的
allContentLoaded
插件生命周期(实验性)
查看 3.2.0 变更日志条目 以获取完整的更改列表。