バンドルの用語では、ローダーはプラグインに似ていますが、ファイルの内容を変換する役割を担います。ローダーを使用すると、任意の入力ファイルをRspackがネイティブでサポートするファイルタイプに変換できます。
ローダーはリソースの前処理を実行しますが、設定の Rule.type は、Rspackがネイティブでサポートするタイプのリソースの後処理について記述します。
Rspackはほとんどのコミュニティローダーをサポートしています。サポートされていないローダーを見つけた場合は、GitHub Issues からお気軽にご連絡ください。
CSSはRspackのファーストクラスシチズンであるため、CSSファイルの処理はネイティブでサポートされています。Less
ファイルの場合、外部の less-loader を使用して、ファイルの内容を適切に変換する必要があります。
less-loader はLessファイルをRspackがサポートするCSSモジュールタイプに変換できるため、タイプを 'css'
に設定して、RspackにネイティブでサポートされているCSS処理方法を使用して後処理を行うように指示できます。
特定の ルール の一致に対して複数のローダーをチェーンできます。ローダーは右から左の順に実行されます。
たとえば、less-loader を使用してLessからCSSタイプへの変換を行い、postcss-loader を使用して変換されたソースコードに対して2次変換を実行できます。これは、RspackのCSSポストプロセッサに渡されてさらに処理されます。
Rule.use を使用して、関連する設定をローダーに渡すことができます。例:
Rspackでカスタムローダーを使用できます。以下の例では、ローダーAPIを使用して簡単なbanner-loaderを作成します。
banner-loaderの目的は、各モジュールのヘッダーにライセンス通知などのバナーコメントを付加することです。
プロジェクトのルートに、以下の内容の新しい banner-loader.js
ファイルを作成します。
このローダーへの最初の入力はファイルの内容であるため、ファイルの内容を処理して変換結果を返すことができます。スクリプトファイルは、CommonJS require()
を使用してインポートする必要があります。
たとえば、すべての *.js
ファイルにバナーを追加する場合、設定は次のようになります。
詳細については、loader-api を参照してください。
組み込みローダーは、JSローダーの構成可能性を犠牲にすることなく、JSローダーよりも優れたパフォーマンスを提供します。以下は、いくつかの組み込みローダーです。