このセクションの内容は、以下のリンクの内容から派生したものであり、CC BY 4.0 ライセンスの対象となります。
以下の内容は、特に明記されていない限り、元のコンテンツに基づいて変更および削除された結果であると想定できます。
Rspackは、Node.jsやBunのようなJavaScriptランタイムで使用するJavaScript APIのセットを提供します。
JavaScript APIは、ビルドまたは開発プロセスをカスタマイズする必要がある場合に役立ちます。すべてのレポートとエラー処理を手動で行う必要があり、webpackはコンパイル部分のみを行うためです。このため、stats
設定オプションは rspack()
呼び出しでは効果がありません。
@rspack/core
は、webpackのJavaScript APIに基づいて設計されており、機能の一貫性と同様のユーザーエクスペリエンスを保証します。
Rspack JavaScript APIの使用を開始するには、まず @rspack/core
をインストールします(まだインストールしていない場合)。
次に、JavaScriptファイルで @rspack/core
モジュールをrequireします。
インポートされたrspack関数は、Rspack設定オブジェクトを受け取り、コールバック関数が提供されている場合にRspackコンパイラを実行します。
err
オブジェクトには、コンパイルエラーは含まれません。これらは、stats.hasErrors()
を使用して個別に処理する必要があります。詳しくは、このガイドの エラー処理 セクションで説明します。 err
オブジェクトには、設定ミスなど、rspack関連の問題のみが含まれます。
rspack
関数に設定の配列を提供できます。詳しくは、以下の マルチコンパイラ セクションを参照してください。
rspack
ランナー関数にコールバックを渡さない場合、Rspack Compiler
インスタンスが返されます。このインスタンスを使用して、Rspackランナーを手動でトリガーしたり、CLIのように変更をビルドして監視したりできます。 Compiler
インスタンスは、次のメソッドを提供します。
.run(callback)
.watch(watchOptions, handler)
通常、マスター Compiler
インスタンスは1つだけ作成されますが、特定のタスクを委任するために子コンパイラを作成できます。 Compiler
は最終的に、ライフサイクルを実行し続けるための最小限の機能を実行する関数です。ロード、バンドル、書き込みのすべての作業を登録済みプラグインに委任します。
Compiler
インスタンスの hooks
プロパティは、Compiler
のライフサイクルの任意のフックイベントにプラグインを登録するために使用されます。RspackOptionsApply
ユーティリティは、Rspackがすべての組み込みプラグインを使用して Compiler
インスタンスを設定するために使用されます。
詳しくは、コンパイラ API を参照してください。
run
メソッドは、すべてのコンパイル作業を開始するために使用されます。完了すると、指定された callback
関数が実行されます。統計情報とエラーの最終的なロギングは、この callback
関数で行う必要があります。
APIは、一度に1つの同時コンパイルのみをサポートします。 run
または watch
を使用する場合、close
を呼び出して完了するまで待ってから、run
または watch
を再度呼び出してください。同時コンパイルを実行すると、出力ファイルが破損します。
watch
メソッドを呼び出すと、rspackランナーがトリガーされますが、変更を監視し(CLI:rspack --watch
のように)、Rspackが変更を検出するとすぐに再実行されます。 Watching
のインスタンスを返します。
Watching
オプションの詳細は、こちらを参照してください。
ファイルシステムの不正確さにより、1つの変更に対して複数のビルドがトリガーされる場合があります。上記の例では、1回の変更に対して console.log
ステートメントが複数回発生する可能性があります。ユーザーはこの動作を予期し、stats.hash
をチェックしてファイルハッシュが実際に変更されたかどうかを確認する必要があります。
詳しくは、
Compiler.watch
を参照してください。
rspack()
コールバックの2番目の引数として渡される stats
オブジェクトは、コードのコンパイルプロセスに関する優れた情報源です。以下が含まれます。
Rspack CLI は、この情報を使用して、コンソールに適切にフォーマットされた出力を表示します。
MultiCompiler
を使用する場合、stats
と同じインターフェース(つまり、以下で説明するメソッド)を満たす MultiStats
インスタンスが返されます。
詳しくは、統計情報 API を参照してください。
MultiCompiler
モジュールを使用すると、Rspackは複数の設定を個別のコンパイラで実行できます。RspackのJavaScript APIの options
パラメータがオプションの配列である場合、Rspackは個別のコンパイラを適用し、すべてのコンパイラが実行された後にコールバックを呼び出します。
詳しくは、マルチコンパイラ API を参照してください。
適切なエラー処理のために、次の3種類のエラーを考慮する必要があります。
すべての条件を処理する例を次に示します。
Rspackにおける inputFileSystem
の現在のサポートは限定的であり、webpackと一致するファイルシステム読み取り機能をカスタマイズする機能はまだ実装されていません。 Issue #5091 を参照してください。
Rspackでは、指定された出力ファイルシステムを使用する場合、mkdirp
および join
ユーティリティメソッドを提供する必要がなくなりました。
デフォルトでは、Rspackは通常のファイルシステムを使用してファイルの読み取りと書き込みをディスクに行います。ただし、別の種類のファイルシステム(メモリ、webDAVなど)を使用して、入力または出力の動作を変更することができます。これを実現するために、inputFileSystem
または outputFileSystem
を変更できます。たとえば、デフォルトの outputFileSystem
を memfs
に置き換えて、ディスクではなくメモリにファイルを書き込むことができます。
sources
オブジェクト@rspack/core
は、sources
を介して webpack-sources モジュールをエクスポートします。これは、ソースコードの断片とソースマップを作成および操作するための一連のクラスを提供します。Rspackプラグインを開発する際に、これらのクラスを使用してソースコードを処理および操作できます。
詳細な使用方法については、webpack-sources のドキュメントを参照してください。