CC 4.0 ライセンス

このセクションの内容は、以下のリンクの内容から派生したものであり、CC BY 4.0 ライセンスに従います。

特に明記されていない限り、以下の内容は、元の内容に基づいて修正および削除を行った結果と見なすことができます。

ターゲット

Rspack の出力のターゲット環境と Rspack ランタイム コードの ECMAScript バージョンを設定するために使用します。

  • 型: string | string[]

文字列

現在、以下のオプションがサポートされています

オプション 説明
'web' ブラウザ環境で利用可能なようにコンパイルします(デフォルト)
'webworker' Web Worker としてコンパイルします
'browserslist' 構成された browserslist に基づいて ES 機能のバージョンを推論します(browserslist 構成が利用可能な場合のデフォルト)
'node[[X].Y]' Node.js 環境で利用可能なようにコンパイルします
'async-node[[X].Y]' Node.js のような環境での使用のためにコンパイルします(チャンクを非同期でロードするために fs と vm を使用します)
'esX' Rspack ランタイムを対応する ECMAScript バージョンにコンパイルします。現在、es3es5es2015es2016es2017es2018es2019es2020es2021es2022 をサポートしています(デフォルトでは es5 が使用されます)
'electron[[X].Y]-main' メインプロセス用の Electron 用にコンパイルします。
'electron[[X].Y]-renderer' レンダラープロセス用の Electron 用にコンパイルし、ブラウザ環境にはチャンク形式として array-push、チャンクローディングとして jsonp を使用し、CommonJS および Electron 組み込みモジュールには NodeTargetPluginExternalsPlugin を使用するターゲットを提供します。
'electron[[X].Y]-preload' レンダラープロセスのプリロードスクリプト用の Electron 用にコンパイルします
'nwjs[[X].Y]' NW.js 環境で利用可能なようにコンパイルします
'node-webkit[[X].Y]' node-webkit 環境で利用可能なようにコンパイルします
esX の範囲

target 構成の esX は、Rspack ランタイム コードの ECMAScript バージョンのみを指定できます。ユーザーコードの ECMAScript バージョンを指定したい場合は、builtin:swc-loader または babel-loader を使用してユーザーコードをダウングレードできます。

コンパイラーが Node.js 環境にコンパイルする必要があることを指定します

rspack.config.js
module.exports = {
  target: 'node',
};

複数のターゲットが渡された場合、機能の共通サブセットが使用されます

rspack.config.js
module.exports = {
  // Rspack will generate a runtime code for web platform and will use only ES5 features
  target: ['web', 'es5'],
};

すべてのターゲットが現在混合できるわけではないことに注意してください。コンパイラーを複数のプラットフォーム用にコンパイルする必要があることを指定すると、エラーが報告されます。

rspack.config.js
module.exports = {
  target: ['web', 'node'],
};

この場合、MultiCompiler に基づいてバンドルするための複数の Rspack 構成を定義できます。

browserslist

プロジェクトに browserslist 構成がある場合、Rspack はそれを使用して

  • ランタイムコードを生成するために使用できる ES 機能を決定します。
  • 環境を推論します(例: last 2 node versions は、output.environment 設定がいくつかある target: "node" と同じです)。
Browserslist とは

Browserslist は、Webアプリケーションが動作するブラウザを指定できるツールです。ブラウザの範囲を指定するための設定を提供します。Browserslist は業界標準となっており、Autoprefixer、Babel、ESLint、PostCSS、SWC、webpackなどのライブラリで使用されています。

サポートされる browserslist の値

  • browserslist - 自動的に解決される browserslist 設定と環境を使用します (最も近い package.json または BROWSERSLIST 環境変数から。詳細は browserslist のドキュメント を参照してください)。
  • browserslist:modern - 自動的に解決される browserslist 設定から modern 環境を使用します。
  • browserslist:last 2 versions - 明示的な browserslist クエリを使用します(設定は無視されます)。
  • browserslist:/path/to/config - 明示的に browserslist 設定を指定します。
  • browserslist:/path/to/config:modern - 明示的に browserslist 設定と環境を指定します。

Node.js バージョン

Node.js または Electron のバージョンをオプションで指定できます。これは上記の表の [[X].Y] で示されます。

rspack.config.js
module.exports = {
  // ...
  target: 'node18.12',
};

Rspack がランタイムコードを生成する際、これはどの ES 機能を使用できるかを判断するのに役立ちます(すべてのチャンクとモジュールはランタイムコードでラップされます)。

target: false

上記のリストにある定義済みのターゲットのいずれもニーズを満たさない場合は、targetfalse に設定できます。これにより、Rspack はプラグインを使用しなくなります。

rspack.config.js
module.exports = {
  // ...
  target: false,
};