Docusaurus 是一个静态站点生成器。它构建了一个具有快速客户端导航的单页面应用程序,利用 React 的全部功能使你的网站具有交互性。它提供开箱即用的文档功能,但可用于创建任何类型的网站(个人网站、产品、博客、营销登陆页面等)。
近日,Docusaurus 发布了最新的 3.2 版本,努力减少了在生产模式下构建 Docusaurus 网站所需的时间。在 3.1 和 3.2 之间,Docusaurus 进行了几项更改,使得许多网站的生产构建速度显著加快。
下面就让我们一起来看一下新版本还有什么亮点吧!
性能提升亮点
让我们举个例子,我们在升级到 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 headingContent is imported from another MDX file:import ImportedDoc from './\_importedDoc.mdx';<ImportedDoc />
## Partial headingSome paragraph
以前,标题 Partial heading 不会出现在目录中,但现在它会出现!
博客插件增强
- 新增显示博客文章的最后更新时间和作者。
- 新增
processBlogPosts
选项,可对博客文章进行过滤、转换、排序。 - 新增
pageBasePath
选项,自定义博客分页URL段。
站点地图增强
新增 lastmod
选项,支持在 XML 中输出 <lastmod>
标签,通常从 Git 历史读取,也可通过文档和博客的 last_update
frontmatter
自定义。
其他改进
- 新增 Vercel Analytics 插件。
docusaurus swizzle
和create-docusaurus
CLI 现在会询问用户是否偏好使用 TypeScript。- 新增冰岛语翻译。
- 新增
allContentLoaded
插件生命周期(实验性)。
立即体验 Docusaurus 3.2 带来的速度与灵活性,让文档和网站构建更上一层楼!