Resolvers

リゾルバーは、enhanced-resolve パッケージを使用して作成されます。Resolver クラスは tapable クラスを拡張し、いくつかのフックを提供するために tapable を使用します。enhanced-resolve パッケージは、新しいリゾルバーを作成するために直接使用できますが、compiler インスタンスには、活用できるいくつかのリゾルバーインスタンスがあります。

読み進める前に、enhanced-resolvetapable のドキュメントに目を通してください。

compiler クラスで利用可能な組み込みリゾルバーには3つの型があります。

  • normal:絶対パスまたは相対パスでモジュールを解決します。
  • context:指定されたコンテキスト内でモジュールを解決します。
  • loader:webpackのローダーを解決します。

必要に応じて、compilerで使用されるこれらの組み込みリゾルバーは、プラグインを介してカスタマイズできます。

compiler.resolverFactory.hooks.resolver
  .for('[type]')
  .tap('name', (resolver) => {
    // you can tap into resolver.hooks now
    resolver.hooks.result.tap('MyPlugin', (result) => {
      return result;
    });
  });

ここで、[type]は上記の3つのリゾルバーのいずれかです。

フックとその説明の完全なリストについては、enhanced-resolve のドキュメントを参照してください。

構成オプション

上記のリゾルバーは、resolve または resolveLoader オプションを使用して、構成ファイルを通じてカスタマイズすることもできます。これらのオプションを使用すると、ユーザーは、resolve pluginsを含め、さまざまなオプションを通じて解決の動作を変更できます。

リゾルバープラグイン(例:DirectoryNamedPlugin)は、plugins構成オプションで直接使用するのではなく、resolve.pluginsに直接含めることができます。

2 貢献者

EugeneHlushkochenxsan