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
内部プラグインの初期セットアップ後に呼び出されます。
compiler
SyncHook
リゾルバーのセットアップが完了した後にトリガーされます。
compiler
SyncHook
コンパイラオブジェクトが初期化されたときに呼び出されます。
AsyncSeriesHook
コンパイラを実行する直前にフックを追加します。
compiler
AsyncSeriesHook
records
の読み取りを開始する前に、コンパイラにフックします。
compiler
AsyncSeriesHook
新しいコンパイルがトリガーされた後、コンパイルが実際に開始される前に、監視モードでプラグインを実行します。
compiler
SyncHook
NormalModuleFactory が作成された後に呼び出されます。
normalModuleFactory
SyncHook
ContextModuleFactory が作成された後にプラグインを実行します。
contextModuleFactory
AsyncSeriesHook
コンパイルパラメーターが作成された後にプラグインを実行します。
compilationParams
compilationParams
変数は次のように初期化されます
compilationParams = {
normalModuleFactory,
contextModuleFactory,
};
このフックを使用して、コンパイルパラメーターを追加/変更できます
compiler.hooks.beforeCompile.tapAsync('MyPlugin', (params, callback) => {
params['MyPlugin - data'] = 'important stuff my plugin will use later';
callback();
});
SyncHook
beforeCompile
の直後、新しいコンパイルが作成される前に呼び出されます。このフックは、子コンパイラにはコピーされません。
compilationParams
SyncHook
コンパイルの初期化中、compilation
イベントを発行する直前に実行されます。このフックは、子コンパイラにはコピーされません。
compilation
, compilationParams
SyncHook
コンパイルが作成された後にプラグインを実行します。
compilation
, compilationParams
AsyncParallelHook
コンパイルの完了前に実行されます。このフックは、子コンパイラにはコピーされません。
compilation
AsyncSeriesHook
コンパイルの完了およびシールの後に呼び出されます。
compilation
SyncBailHook
アセットの発行前に呼び出されます。発行するかどうかを示すブール値を返す必要があります。
compilation
compiler.hooks.shouldEmit.tap('MyPlugin', (compilation) => {
// return true to emit the output, otherwise false
return true;
});
AsyncSeriesHook
アセットを出力ディレクトリに発行する直前に実行されます。このフックは、子コンパイラにはコピーされません。
compilation
AsyncSeriesHook
アセットを出力ディレクトリに発行した後に呼び出されます。このフックは、子コンパイラにはコピーされません。
compilation
AsyncSeriesHook
アセットが発行されたときに実行されます。出力パスやバイトコンテンツなど、発行されたアセットに関する情報へのアクセスを提供します。
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
コンパイルが完了したときに実行されます。このフックは、子コンパイラにはコピーされません。
stats
AsyncSeriesHook
このフックを使用すると、ビルドの追加パスをもう 1 つ実行できます。
SyncHook
コンパイルが失敗した場合に呼び出されます。
error
SyncHook
監視中のコンパイルが無効になったときに実行されます。このフックは、子コンパイラにはコピーされません。
fileName
, changeTime
SyncHook
監視中のコンパイルが停止したときに呼び出されます。
AsyncSeriesHook
コンパイラが閉じるときに呼び出されます。
SyncBailHook
infrastructureLogging
オプション を介して構成で有効になっている場合に、インフラストラクチャロギングを使用できるようにします。
name
, type
, args
SyncBailHook
有効になっている場合は stats にログを記録できるようにします。 stats.logging
, stats.loggingDebug
および stats.loggingTrace
オプション を参照してください。
origin
, logEntry