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 clear`を実行した後など、Docusaurusのキャッシュが空の場合に行われます。
インクリメンタルビルドは、`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に`
また、一般的にクローラー(特に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変更ログエントリを確認してください。