公開
公開される内容
このプラグインは、ビルドの出力の git-diff-data/ に履歴を書き出す。
pages/:ページごとの版の一覧と、ページが存在したタグの時点の版tags.json:書き出したタグの名前の一覧log/:バージョンと言語ごとの最近のコミットblobs/:上の 2 つが参照する、ページの各版のソース
これらは、差分を開くかどうかにかかわらず、誰でも取得できる静的なファイルになる。
ドキュメントから削除した文も、それを含む版の中では読める状態で残る。
古い版を公開したくない場合は、since にタグかコミットを指定する。
その時点より前の履歴は書き出さない。
コミットメッセージは加工してから書き出し、使うのは要約行だけである(コミットメッセージを参照)。 作者のメールアドレスは書き出さない。
CI でのビルド
浅いクローンでは履歴が途中で切れる。 このプラグインは浅いクローンを検出すると警告を出す。 ビルドの前に、全履歴とタグを取得しておく。
コミットしていない変更
このプラグインが読むのは、コミット済みの履歴だけである。 コミットしていないページの追加や編集は、コミットするまで履歴に現れない。
大きなサイト
出力は履歴とともに大きくなる。
git-diff-data/ には履歴にあるすべてのページのすべての版が入り、各ページの索引には、タグごとにその時点のページの版を記録する。
書き出す内容は、次の 2 つのオプションで絞れる。
tagPattern:?diff=で読み手に使ってほしいタグだけを記録する。設定しなければ、モノレポのパッケージのタグも含め、リポジトリのすべてのタグを全ページに記録する。tagPatternを設定せずに 20 を超えるタグを書き出すと、ビルドが警告を出す。since:直近のメジャーリリースなど、あるタグかコミットより前の履歴を書き出さない。出力の大部分を占める古い版そのものが減る。
since を設定したときに書き出すのは、履歴の上で since の子孫にあたるタグだけである。
リリースのタグをリリース用のブランチに付けるリポジトリでは、リリースのタグを since にすると、その後のリリースのタグも除かれる。
後のタグは別のブランチにあり、since の子孫にならないためである。
この場合は、リリース用のブランチが分かれた main ブランチ上のコミットを since に指定する(git merge-base v2.0.0 main の出力など)。
例として、Rspack のドキュメント(374 ページ、1,212 コミット、リリースのタグはリリース用のブランチにある)で、tagPattern: /^v\d/ を設定して 2026 年 10 月に計測した大きさを示す。
tagPattern を設定しなかった場合は、リポジトリの 402 個のタグがすべて記録され、git-diff-data/ は 91.3 MiB だった。
since 以降に変わっていないページは履歴を持たない。
v2.0.0 を指定した場合、374 ページのうち 18 ページがこれに当たった。
履歴の読み込みにかかる負荷を確かめるには、RSPRESS_GIT_DIFF_STATS=1 を設定してビルドする。
ビルドは、ログの読み込み、ページの内容の読み込み、データの組み立て、ファイルの書き出しの各段階について、所要時間、使用中のヒープ、件数を出力する。