コンパイラ
コンパイラメソッド
run
コンパイルを開始し、コンパイルが完了するか、エラーのために中断されたときにコールバックされます。
run(callback: (
error: Error, // Only including compiler-related errors, such as configuration errors, not including compilation errors
stats: Stats, // detailed information generated during the compilation
) => void): void;
警告
このAPIは一度に1つのコンパイルしかサポートしていません。`compiler.run`のコールバックで`compiler.close`を呼び出し、それが完了するまで待機してから、再度`compiler.run`を実行してください。同時コンパイルは出力ファイルを破損します。
compiler.run((err, stats) => {
// Deal with the compiler errors
handlerCompilerError(err);
// Deal with the compilation errors
handlerModuleErrors(stats.toJson().errors);
// Deal with the result
handleBuildResult(stats);
// End this compilation
compiler.close(closeErr => {
// Start a new compilation
compiler.run((err, stats) => {});
});
});
watch
ファイルとディレクトリを監視し、それらが変更された後にコンパイルプロセスを開始し、コンパイルが完了するか、エラーのために中断されるたびにコールバックされます。
watch(
watchOptions: WatchOptions, // options for starting the watching
handler: (error: Error, stats: Stats) => void // callback when every compilation ends
): Watching; // watching controller
警告
このAPIは一度に1つのコンパイルしかサポートしていません。`compiler.watch`のコールバックで`compiler.close`を呼び出し、それが完了するまで待機してから、再度`compiler.watch`を実行してください。同時コンパイルは出力ファイルを破損します。
const watching = compiler.watch(
{
aggregateTimeout: 300,
poll: undefined,
},
(err, stats) => {
// Deal with the result
handleBuildResult(stats);
},
);
Watchingオブジェクトは以下のメソッドを提供します
watch
:
- 型:
(files: string[], dirs: string[], missing: string[]): void
- 使用方法: 監視する必要のあるファイルとディレクトリを追加します。
invalidate
:
- 型:
(callback: () => void): void
- 使用方法: ワッチャーを停止せずに、現在記録されているファイルの変更で、このラウンドの監視を直ちに終了し、コンパイルを開始します。
suspend
:
- 型:
(): void
- 使用方法: 監視のみの状態になり、新しいコンパイルは開始されません。
resume
:
- 型:
(): void
- 使用方法: 監視のみの状態を終了し、現在記録されているファイルの変更でコンパイルを開始します。
close
:
- 型:
(callback: () => void): void
- 使用方法: ワッチャーを停止します。
compile
コンパイルを作成して実行します。これは、`compiler.run`と`compiler.watch`が依存する基本的なメソッドです。
compile(
callback: (compilation: Compilation) => void // callback after this compilation
): void
close
現在のコンパイラを閉じ、この期間中にキャッシングなどの低優先度のタスクを処理します。
close(
callback: (err: Error) => void // callback after closing
): void;
getInfrastructureLogger
任意のコンパイルに関連付けられていないloggerオブジェクトを作成します。これは、グローバルログを出力するために使用されます。
getInfrastructureLogger(name: string): Logger;
getCache
ビルドプロセスでデータを共有するためのキャッシュオブジェクトを作成します。
getCache(name: string): CacheFacade;
purgeInputFileSystem
入力ファイルシステムの読み取りループを停止します。内部的にはタイマーが含まれており、`compiler.close`を呼び出した後もプロセスが終了できない可能性があります。
purgeInputFileSystem(): void;
createChildCompiler
Rspack内でRspackの別のインスタンスを実行できます。ただし、適用される設定と構成が異なる子として実行されます。親(または最上位のコンパイラ)からすべてのフックとプラグインをコピーし、子`Compiler`インスタンスを作成します。作成された`Compiler`を返します。
createChildCompiler(
compilation: Compilation,
compilerName: string,
compilerIndex: number,
outputOptions: OutputOptions,
plugins: RspackPlugin[]
): Compiler;
runAsChild
子コンパイラを実行します。これにより、完全なコンパイルが行われ、アセットが生成されます。
runAsChild(
callback(
err: Error, // error related to the child compiler
entries: Chunk[], // chunks generated by the child compiler
compilation: Compilation, // the compilation created by the child compiler
): void;
): void;
isChild
このコンパイラが子コンパイラかどうかを示します。
コンパイラプロパティ
hooks
詳細はコンパイラフックを参照してください。
rspack
関連する内部オブジェクトを取得するために`@rspack/core`のエクスポートを取得します。これは、`@rspack/core`を直接参照できない場合、または複数のRspackインスタンスが存在する場合に特に役立ちます。
一般的な例としては、Rspackプラグインでsourcesオブジェクトにアクセスすることです。
const { RawSource } = compiler.rspack.sources;
const source = new RawSource('console.log("Hello, world!");');
webpack
`compiler.rspack`と同等です。このプロパティは、Webpackプラグインとの互換性のために使用されます。
開発中のRspackプラグインでWebpackとの互換性が必要な場合は、`compiler.rspack`の代わりにこのプロパティを使用できます。
console.log(compiler.webpack === compiler.rspack); // true
name
名前を取得します。
- ルートコンパイラの場合、
name
と同等です。
- 子コンパイラの場合、`createChildCompiler`に渡された値です。
- MultiCompilerの場合、キーバリュー形式でキーとなります。
context
現在のプロジェクトルートディレクトリ
- `new Compiler`で作成された場合、渡された値です。
- `rspack({})`で作成された場合、context設定です。
root
子コンパイラツリーのルートを取得します。
options
- 型:
RspackOptionsNormalized
このコンパイラで使用される完全なオプションを取得します。
watchMode
`compiler.watch`で開始されたかどうかを示します。
watching
watchingオブジェクトを取得します。詳細はwatchメソッドを参照してください。
running
現在コンパイルが実行中かどうかを示します。
inputFileSystem
ファイルシステムからの読み取りに使用されるプロキシオブジェクトを取得します。内部的にはキャッシングなどの最適化が含まれており、同じファイルの重複読み取りを削減します。
outputFileSystem
ファイルシステムへの書き込みに使用されるプロキシオブジェクトを取得します。デフォルトでは`fs`です。
watchFileSystem
ファイルまたはディレクトリの変更を監視するために使用されるプロキシオブジェクトを取得します。このオブジェクトは、監視を開始するためのwatch
メソッドを提供し、変更された項目と削除された項目をコールバックに渡します。
MultiCompiler
MultiCompiler
モジュールにより、Rspackは複数のコンフィグレーションを個別のコンパイラで実行できます。RspackのJavaScript APIのオプションパラメータがオプションの配列の場合、Rspackは個別のコンパイラを適用し、すべてのコンパイラの実行後にコールバックを呼び出します。
const rspack = require('@rspack/core');
rspack(
[
{ entry: './index1.js', output: { filename: 'bundle1.js' } },
{ entry: './index2.js', output: { filename: 'bundle2.js' } },
],
(err, stats) => {
process.stdout.write(stats.toString() + '\n');
},
);
new MultiCompiler
を使用して作成することもできます。
const compiler1 = new Compiler({
/* */
});
const compiler2 = new Compiler({
/* */
});
new MultiCompiler([compiler1, compiler2]);
new MultiCompiler([compiler1, compiler2], {
parallelism: 1, // the maximum number of parallel compilers
});
new MultiCompiler({
name1: compiler1,
name2: compiler2,
});
MultiCompiler
は、Compiler
のいくつかのメソッドと属性も提供します。
MultiCompilerメソッド
setDependencies
コンパイラの依存関係を、compiler.name
を識別子として使用して指定し、コンパイラの実行順序を保証します。
setDependencies(compiler: Compiler, dependencies: string[]): void;
validateDependencies
コンパイラ間の依存関係が有効かどうかをチェックします。循環依存関係または依存関係の欠如がある場合、コールバックがトリガーされます。
validateDependencies(
callback: (err: Error) => void; // callback when there is an error
): boolean
run
依存関係に従って各コンパイラのrun
メソッドを実行し、コンパイルプロセスを開始します。
run(callback: (err: Error, stats: MultiStats) => void): void;
watch
依存関係に従って各コンパイラのwatch
メソッドを実行し、監視を開始し、ファイルの変更後にコンパイルプロセスを開始します。
watch(
watchOptions: WatchOptions,
handler: (err: Error, stats: MultiStats) => void,
): MultiWatching
close
各コンパイラのclose
メソッドを実行して閉じ、キャッシングなどの低優先度のタスクをこの期間に処理します。
close(callback: (err: Error) => void): void;
purgeInputFileSystem
各コンパイラのpurgeInputFileSystem
を実行して、ファイルシステムの読み取りループを停止します。
purgeInputFileSystem(): void;
getInfrastructureLogger
任意のコンパイルに関連付けられていないloggerオブジェクトを作成します。これは、グローバルログを出力するために使用されます。
getInfrastructureLogger(name: string): Logger;
compilers[0].getInfrastructureLogger()
と同じです。
MultiCompilerプロパティ
compilers
含まれるすべてのコンパイラを取得します。
options
読み取り専用
- 型:
RspackOptionsNormalized[]
コンパイラで使用される完全なオプションをすべて取得します。
inputFileSystem
書き込み専用
各コンパイラでファイルシステムからの読み取りに使用されるプロキシオブジェクトを設定します。
outputFileSystem
書き込み専用
各コンパイラでファイルシステムへの書き込みに使用されるプロキシオブジェクトを設定します。
watchFileSystem
書き込み専用
各コンパイラでファイルまたはディレクトリの変更を監視するために使用されるプロキシオブジェクトを設定します。
running
現在コンパイルが実行中かどうかを示します。