1. ホーム
  2. javascript

[解決済み] Webpackのローダーとプラグインの違いは?

2022-06-17 12:50:46

質問

webpackのloaderとpluginの違いは何ですか?

ローダーは プラグインのドキュメント が書いてあるだけです。

webpackのbundleに典型的に関連する機能を追加するためにプラグインを使用します。

babel が jsx/es2015 トランスフォームのローダーを使用していることは知っていますが、他の一般的なタスク (たとえば copy-webpack-plugin) は代わりにプラグインを使用しているように見えます。

どのように解決するのですか?

ローダーは、以下のように使用する場合、事実上あらゆるファイル形式の前処理変換を行います。 require("my-loader!./my-awesome-module") のようなものをコードで使用するときに、事実上あらゆるファイルフォーマットの前処理変換を行います。プラグインと比較すると、(a) webpack に単一の関数を公開するだけであり、(b) 実際のビルドプロセスに影響を与えることができないため、非常にシンプルです。

一方、プラグインは、webpackのビルドシステムにフックを登録し、コンパイラにアクセス(および変更)し、コンパイルだけでなく、それがどのように動作するかができるため、webpackに深く統合することができます。そのため、より強力ですが、メンテナンスも難しくなります。