Compiler モジュールは、CLI または Node API を介して渡されたすべてのオプションを使用してコンパイルインスタンスを作成するメインエンジンです。プラグインを登録および呼び出すために Tapable クラスを拡張します。ほとんどのユーザー向けのプラグインは、最初に Compiler に登録されます。
webpack のプラグインを開発する場合、各フックがどこで呼び出されるかを知りたい場合があります。これを学習するには、webpack のソース全体で hooks.<フック名>.call を検索してください。
Compiler は、ファイルシステムの監視と、ファイルが変更されたときの再コンパイルを行う 監視 をサポートしています。監視モードの場合、コンパイラは watchRun、watchClose、invalid などの追加イベントを発行します。これは通常、開発 で、通常は webpack-dev-server などのツールの下で使用され、開発者が毎回手動で再コンパイルする必要がないようにします。監視モードは CLI を介して入力することもできます。
次のライフサイクルフックが compiler によって公開されており、次のようにアクセスできます
compiler.hooks.someHook.tap('MyPlugin', (params) => {
/* ... */
});フックのタイプに応じて、tapAsync および tapPromise も利用できる場合があります。
フックタイプの詳細については、Tapable ドキュメント を参照してください。
SyncHook
構成ファイルでプラグインを初期化した直後、コンパイラ環境の準備中に呼び出されます。
SyncHook
コンパイラ環境のセットアップが完了したとき、environment フックの直後に呼び出されます。
SyncBailHook
webpack オプションの entry 構成 が処理された後に呼び出されます。
compiler.hooks.entryOption.tap('MyPlugin', (context, entry) => {
/* ... */
});SyncHook
内部プラグインの初期セットアップ後に呼び出されます。
compilerSyncHook
リゾルバーのセットアップが完了した後にトリガーされます。
compilerSyncHook
コンパイラオブジェクトが初期化されたときに呼び出されます。
AsyncSeriesHook
コンパイラを実行する直前にフックを追加します。
compilerAsyncSeriesHook
records の読み取りを開始する前に、コンパイラにフックします。
compilerAsyncSeriesHook
新しいコンパイルがトリガーされた後、コンパイルが実際に開始される前に、監視モードでプラグインを実行します。
compilerSyncHook
NormalModuleFactory が作成された後に呼び出されます。
normalModuleFactorySyncHook
ContextModuleFactory が作成された後にプラグインを実行します。
contextModuleFactoryAsyncSeriesHook
コンパイルパラメーターが作成された後にプラグインを実行します。
compilationParamscompilationParams 変数は次のように初期化されます
compilationParams = {
normalModuleFactory,
contextModuleFactory,
};このフックを使用して、コンパイルパラメーターを追加/変更できます
compiler.hooks.beforeCompile.tapAsync('MyPlugin', (params, callback) => {
params['MyPlugin - data'] = 'important stuff my plugin will use later';
callback();
});SyncHook
beforeCompile の直後、新しいコンパイルが作成される前に呼び出されます。このフックは、子コンパイラにはコピーされません。
compilationParamsSyncHook
コンパイルの初期化中、compilation イベントを発行する直前に実行されます。このフックは、子コンパイラにはコピーされません。
compilation, compilationParamsSyncHook
コンパイルが作成された後にプラグインを実行します。
compilation, compilationParamsAsyncParallelHook
コンパイルの完了前に実行されます。このフックは、子コンパイラにはコピーされません。
compilationAsyncSeriesHook
コンパイルの完了およびシールの後に呼び出されます。
compilationSyncBailHook
アセットの発行前に呼び出されます。発行するかどうかを示すブール値を返す必要があります。
compilationcompiler.hooks.shouldEmit.tap('MyPlugin', (compilation) => {
// return true to emit the output, otherwise false
return true;
});AsyncSeriesHook
アセットを出力ディレクトリに発行する直前に実行されます。このフックは、子コンパイラにはコピーされません。
compilationAsyncSeriesHook
アセットを出力ディレクトリに発行した後に呼び出されます。このフックは、子コンパイラにはコピーされません。
compilationAsyncSeriesHook
アセットが発行されたときに実行されます。出力パスやバイトコンテンツなど、発行されたアセットに関する情報へのアクセスを提供します。
file, infoたとえば、info.content を介してアセットのコンテンツバッファーにアクセスできます。
compiler.hooks.assetEmitted.tap(
'MyPlugin',
(file, { content, source, outputPath, compilation, targetPath }) => {
console.log(content); // <Buffer 66 6f 6f 62 61 72>
}
);AsyncSeriesHook
コンパイルが完了したときに実行されます。このフックは、子コンパイラにはコピーされません。
statsAsyncSeriesHook
このフックを使用すると、ビルドの追加パスをもう 1 つ実行できます。
SyncHook
コンパイルが失敗した場合に呼び出されます。
errorSyncHook
監視中のコンパイルが無効になったときに実行されます。このフックは、子コンパイラにはコピーされません。
fileName, changeTimeSyncHook
監視中のコンパイルが停止したときに呼び出されます。
AsyncSeriesHook
コンパイラが閉じるときに呼び出されます。
SyncBailHook
infrastructureLogging オプション を介して構成で有効になっている場合に、インフラストラクチャロギングを使用できるようにします。
name, type, argsSyncBailHook
有効になっている場合は stats にログを記録できるようにします。 stats.logging, stats.loggingDebug および stats.loggingTrace オプション を参照してください。
origin, logEntry