Docusaurus 3.2
我们很高兴地宣布 Docusaurus 3.2 发布。
升级应该很容易:正如我们的 发布流程文档 中所解释的那样,次要版本遵循 语义版本控制 。
亮点
更快的构建速度
我们努力减少了在生产模式下构建 Docusaurus 网站所需的时间。
在 v3.1.0 和 v3.2.0 之间,进行了一些更改,导致许多网站的生产构建速度显著加快。
让我们来看一个例子。我们在 将 React Native 网站升级到 v3.2 的基准测试中报告了以下结果:
- 🔥 冷构建: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 文件称为“部分”,并使用 _
前缀,以便此文件不会导致创建新页面。
# 我的文档
## 文档标题
内容从另一个 MDX 文件导入:
import ImportedDoc from './\_importedDoc.mdx';
<ImportedDoc />
## 部分标题
一些段落
以前,“部分标题”标题不会出现在目录中,但现在会!
博客改进
我们使用几个新选项改进了博客插件,使其更强大和灵活:
- #9912 :您现在可以显示博客文章的最后更新时间和作者,这是文档插件已经具备的功能。
- #9886 :新的
processBlogPosts
选项允许您过滤/转换/排序博客文章。 - #9838 :新的
pageBasePath
选项允许您自定义博客分页 URL 段(/blog/page/2
)
Sitemap lastmod
通过 #9954 ,站点地图插件现在有一个新的 lastmod
选项,它现在可以在 XML 上发出 <lastmod>
标签。该值默认情况下从 Git 历史记录中读取,但可以使用文档和博客 last_update
前端内容进行覆盖。
我们还使其能够选择不发出 <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 变更日志条目 以获取所有更改的详尽列表。