統計情報

rspack() コールバックの第2引数として渡される stats オブジェクトは、コードのコンパイルプロセスに関する優れた情報源です。これには以下が含まれます。

  • エラーと警告 (ある場合)
  • タイミング
  • モジュールとチャンクの情報

Stats オブジェクトは、2つの重要なメソッドを提供します。

  • toJson(): 統計情報 JSON オブジェクトの形式で情報を
  • toString(): 文字列の形式で情報を

Rspackは、出力オブジェクトまたは文字列をきめ細かく制御するために、StatsFactoryStatsPrinter も提供しています。

統計情報の出力
Compilation ===============> Stats JSON =================> Stats Output
           ╰─ StatsFactory ─╯           ╰─ StatsPrinter ─╯
╰─────────── stats.toJson() ───────────╯
╰───────────────────────── stats.toString() ──────────────────────────╯

compilation.getStats() または new Stats(compilation) を使用して、コンパイルに関連する統計オブジェクトを作成します。

統計情報メソッド

hasErrors

コンパイル中にエラーが発生したかどうかを確認するために使用できます。

hasErrors(): boolean;

hasWarnings

コンパイル中に警告が発生したかどうかを確認するために使用できます。

hasWarnings(): boolean;

toJson

統計情報 JSON オブジェクトの形式でコンパイル情報を返します。統計情報の設定は、文字列 (プリセット値) またはきめ細かい制御のためのオブジェクトにすることができます。

stats.toJson('minimal');
stats.toJson({
  assets: false,
  hash: true,
});

toString

コンパイル情報をフォーマットされた文字列の形式で返します (CLI の出力に似ています)。

toJson(opts?: StatsValue): string;

オプションは、1つ追加された stats.toJson(options) と同じです。

stats.toString({
  // Add console colors
  colors: true,
});

stats.toString() の使用例を次に示します。

import { rspack } from '@rspack/core';

rspack(
  {
    // ...
  },
  (err, stats) => {
    if (err) {
      console.error(err);
      return;
    }

    console.log(
      stats.toString({
        chunks: false, // Makes the build much quieter
        colors: true, // Shows colors in the console
      }),
    );
  },
);

統計情報プロパティ

compilation

タイプ: Compilation

関連するコンパイルオブジェクトを取得します。

hash

タイプ: string

このコンパイルのハッシュを取得します。Compilation.hash と同じです。

MultiStats

MultiCompiler を使用して複数のコンパイルタスクを実行する場合、それらのコンパイル統計情報は MultiStats オブジェクトとしてパッケージ化されます。これは、Stats と同様のメソッドとプロパティを提供します。

hash

読み取り専用

タイプ: string

すべてのコンパイルのハッシュをマージした後のユニークなハッシュを取得します。

hasErrors

コンパイル期間中にエラーが発生したかどうかを確認するために使用されます。すべてのコンパイルにエラーがない場合にのみ false を返します。

hasErrors(): boolean;

hasWarnings

コンパイル期間中に警告が発生したかどうかを確認するために使用されます。すべてのコンパイルに警告がない場合にのみ false を返します。

hasWarnings(): boolean;

toJson

stats 設定に従って、すべての stats json オブジェクトを生成し、それらを children フィールドにラップし、errorswarnings をまとめます。

toJson(options?: StatsValue): {
  hash: string;
  errorsCount: number;
  warningsCount: number;
  errors: StatsError[];
  warnings: StatsError[];
  children: StatsCompilation[];
};

toString

stats 設定に従って、すべてのコンパイルの stats 出力文字列を連結します。

toString(options?: StatsValue): string;

Stats Factory

Compilation から stats json オブジェクトを生成するために使用され、生成プロセス中にきめ細かい制御を行うためのフックを提供します。

compilation.hooks.statsFactory から取得できます。または、new StatsFactory() によって新しいものを作成します。

フック

詳細については、StatsFactory フックを参照してください。

create

StatsFactory のコアメソッドであり、現在のデータ構造を指定する type に従って、対応するジェネレーターを見つけて実行し、stats json アイテムを生成します。

stats = statsFactory.create('compilation', compilation, {});

StatsFactory オブジェクトはフックの呼び出しのみを処理し、対応するタイプの処理コードは DefaultStatsFactoryPlugin にあります。

Stats Printer

stats json オブジェクトから出力文字列を生成するために使用され、生成プロセス中にきめ細かい制御を行うためのフックを提供します。

compilation.hooks.statsPrinter から取得できます。または、new StatsPrinter() によって新しいものを作成します。

フック

詳細については、StatsPrinter フックを参照してください。

print

StatsPrinter のコアメソッドであり、現在のデータ構造を指定する `type` に従って、対応するジェネレーターを見つけて実行し、stats アイテムの出力文字列を生成します。

stats = statsPrinter.print('compilation', stats, {});

StatsPrinter オブジェクトはフックの呼び出しのみを処理し、対応するタイプの処理コードは DefaultStatsPrinterPlugin にあります。