このセクションの内容は、以下のリンクの内容を基にしており、CC BY 4.0 ライセンスの対象となります。
特に明記されていない限り、以下の内容は、元のコンテンツに基づいて修正と削除が行われた結果であるとみなすことができます。
最上位の `output` キーには、バンドル、アセット、その他 Rspack でバンドルまたはロードするものをどのように、どこに配置するかを指示する一連のオプションが含まれています。
Object
string | ((pathData: PathData, assetInfo?: JsAssetInfo) => string)
'[hash][ext][query]'
output.filename
と同じですが、アセットモジュール 用です。
[name]
、[file]
、[query]
、[fragment]
、[base]
、および [path]
は、data URI 置換から構築されたアセットに対して空文字列に設定されます。
アセットモジュールによって出力されるファイル名。この値は、Rule.generator.filename で上書きできます。
'asset'
であり、アセットはRule.parser.dataUrlConditionを満たすように設定されています。'asset/resource'
です。boolean
true
オンデマンドでロードされる非同期チャンクを作成します。
boolean
true
HTML の <script>
タグに charset="utf-8"
を追加します。
<script>
タグの `charset` 属性は非推奨 になりましたが、Rspack は非近代的なブラウザとの互換性のために、デフォルトで追加しています。
string = '[id].js' | (pathData: PathData, assetInfo?: JsAssetInfo) => string
output.filename
によって決定されます。関数の場合、'[id].js'
。このオプションは、初期以外のチャンクファイルの名前を決定します。可能な値の詳細については、output.filename
オプションを参照してください。
これらのファイル名は、チャンクのリクエストを送信するために実行時に生成する必要があることに注意してください。このため、[name]
や [chunkhash]
のようなプレースホルダーは、Rspack ランタイムを使用して、チャンク ID からプレースホルダー値へのマッピングを出力バンドルに追加する必要があります。これによりサイズが増加し、いずれかのチャンクのプレースホルダー値が変更されるとバンドルが無効になる可能性があります。
デフォルトでは、[id].js
が使用されるか、output.filename
から推測された値([name]
は [id]
に置き換えられるか、または [id].
がプレフィックスとして追加される)が使用されます。
関数としての使用
false | 'array-push' | 'commonjs' | 'module' | string
target
と output.module
によって決定されます。チャンクのフォーマット(デフォルトで含まれるフォーマットは'array-push'
(web/webworker)、'commonjs'
(node.js)、'module'
(ESM)ですが、プラグインによって他のフォーマットが追加される可能性があります)。
このオプションのデフォルト値は、target
とoutput.module
の設定によって異なります。詳細については、「chunkFormat」をRspack のデフォルト設定で検索してください。
number
120000
チャンクのリクエストがタイムアウトするまでのミリ秒数。
string
output.uniqueName
によって決定されます。グローバル変数は、Rspack がチャンクの読み込みに使用する変数です。
false | 'jsonp' | 'import-scripts' | 'require' | 'async-node' | 'import'
チャンクを読み込む方法(デフォルトで含まれる方法は'jsonp'
(web)、'import'
(ESM)、'importScripts'
(webworker)、'require'
(同期 node.js)、'async-node'
(非同期 node.js)ですが、プラグインによって他の方法が追加される可能性があります)。デフォルト値は、target
とchunkFormat
の設定に基づいて決定されます。
このオプションのデフォルト値は、target
とchunkFormat
の設定によって異なります。詳細については、"chunkLoading"
をRspack のデフォルト設定で検索してください。
boolean
false
出力ディレクトリ内のすべてのファイルを削除してから、出力物を生成します。
boolean
true
出力ファイルシステムに書き込む前に、既に存在するファイルが同じ内容を持っているかどうかをRspackに確認させます。
ディスク上に既に同じ内容のファイルが存在する場合、Rspackは出力ファイルを作成しません。
false | 'anonymous' | 'use-credentials'
false
crossOriginLoading
設定を使用すると、動的に読み込まれたチャンクのcrossorigin 属性を設定できます。
target
が'web'
の場合、Rspackは非同期JavaScriptとCSSリソースを読み込むために、動的に<script>
タグと<link>
タグを作成します。これらのリソースのURLが他のドメインにあり、crossOriginLoading
がfalse
でない場合、Rspackは<script>
タグと<link>
タグにcrossorigin
属性を追加します。
オプション値
crossOriginLoading
には、次のオプション値があります。
false
: crossorigin 属性を設定しません。'anonymous'
: ユーザー認証情報なしでクロスオリジンを有効にするために、crossorigin
を'anonymous'
に設定します。'use-credentials'
: ユーザー認証情報を使用してクロスオリジンを有効にするために、crossorigin
を'use-credentials'
に設定します。例
例えば、output.publicPath
をhttps://example.com/
に、output.crossOriginLoading
を'anonymous'
に設定します。
RspackがJavaScriptリソースを動的に読み込む場合、次のHTMLを生成します。
string | (pathData: PathData, assetInfo?: JsAssetInfo) => string
output.chunkFilename
によって決定されます。それ以外の場合は'[id].css'
。このオプションは、ディスク上の非初期CSS出力ファイルの名前を決定します。可能な値の詳細については、output.filename
オプションを参照してください。
絶対パスをここに指定することはできません。ただし、'/'
で区切られたフォルダを含めることができます。指定されたパスは、output.path
の値と組み合わされて、ディスク上の場所を特定します。
string | (pathData: PathData, assetInfo?: JsAssetInfo) => string
output.filename
によって決定されます。このオプションは、ディスク上のCSS出力ファイルの名前を決定します。可能な値の詳細については、output.filename
オプションを参照してください。
絶対パスをここに指定することはできません。ただし、'/'
で区切られたフォルダを含めることができます。指定されたパスは、output.path
の値と組み合わされて、ディスク上の場所を特定します。
string
| function (info)
undefined
上記のテンプレート文字列または関数が重複した結果を生成した場合に使用されるフォールバック。
output.devtoolModuleFilenameTemplate
を参照してください。
string = 'webpack://[namespace]/[resource-path]?[loaders]'
| function (info) => string
undefined
このオプションは、devtool
がモジュール名が必要なオプションを使用する場合にのみ使用されます。
各ソースマップのsources
配列で使用される名前をカスタマイズします。テンプレート文字列または関数を渡すことで実行できます。たとえば、devtool: 'eval'
を使用する場合などです。
テンプレート文字列では、次の置換を使用できます。
テンプレート | 説明 |
---|---|
[absolute-resource-path] | 絶対ファイル名 |
[all-loaders] | 最初のローダーの名前までの自動および明示的なローダーとパラメーター |
[hash] | モジュール識別子のハッシュ |
[id] | モジュール識別子 |
[loaders] | 最初のローダーの名前までの明示的なローダーとパラメーター |
[resource] | ファイルを解決するために使用されるパスと、最初のローダーで使用されるクエリパラメーター |
[resource-path] | クエリパラメーターを含まない、ファイルを解決するために使用されるパス |
[namespace] | モジュールの名前空間。ライブラリとしてビルドする場合、通常はライブラリ名、それ以外の場合は空 |
関数を使用する場合、同じオプションはキャメルケースでinfo
パラメーターを介して使用できます。
複数のモジュールが同じ名前になる場合、これらのモジュールには代わりにoutput.devtoolFallbackModuleFilenameTemplate
が使用されます。
string
undefined
このオプションは、output.devtoolModuleFilenameTemplate
で使用されるモジュール名の名前空間を決定します。指定されていない場合、output.uniqueName
の値がデフォルトになります。これは、複数のRspackでビルドされたライブラリを読み込む場合に、ソースマップ内のソースファイルパスの衝突を防ぐために使用されます。
たとえば、名前空間がlibrary1
とlibrary2
で、どちらも./src/index.js
ファイル(内容は異なる可能性があります)を持つ2つのライブラリがある場合、これらのファイルはwebpack://library1/./src/index.js
とwebpack://library2/./src/index.js
として公開されます。
('jsonp' | 'import-scripts' | 'require' | 'async-node' | string)[]
output.chunkLoading
、output.workerChunkLoading
、およびエントリのchunkLoading設定によって決定されます。エントリポイントで使用可能なチャンク読み込みタイプのリスト。Rspackによって自動的に設定されます。エントリオプションとして関数を使用し、そこからchunkLoadingオプションを返す場合にのみ必要です。
string[]
エントリポイントで使用可能なライブラリタイプのリスト。
('fetch-streaming' | 'fetch' | 'async-node' | string | false)[]
output.wasmLoading
とoutput.workerWasmLoading
によって決定されます。エントリポイントで使用可能なWasm読み込みタイプのリスト。
生成されたランタイムコードで使用できるES機能の種類をRspackに指示します。
string | (pathData: PathData, assetInfo?: JsAssetInfo) => string
[output.module](#outputmodule)
がtrue
の場合、'[name].mjs'
、それ以外の場合は'[name].js'
。このオプションは、各出力バンドルの名前を決定します。バンドルは、output.path
オプションで指定されたディレクトリに書き込まれます。
単一のentry
ポイントの場合、これは静的な名前になります。
しかし、複数のエントリポイント、コード分割、またはさまざまなプラグインを介して複数のバンドルを作成する場合、次のいずれかの置換を使用して、各バンドルに一意の名前を付ける必要があります...
Rspackは、ユーザー入力コードに対してコード分割の最適化を実行します。これには、コード分割、バンドル分割、または他のプラグインを介して実装された分割が含まれますが、これらに限定されません。これらの分割アクションにより、複数のバンドルが生成される可能性があるため、バンドルのファイル名は動的に生成する必要があります。
Entry名を使用する
内部チャンクIDを使用する
生成されたコンテンツから生成されたハッシュを使用する
複数の置換を組み合わせる
ファイル名を返す関数を使用する
このオプションはfilenameと呼ばれていますが、'js/[name]/bundle.js'
のようなものを使用してフォルダ構造を作成することもできます。
このオプションは、オンデマンドでロードされるチャンクの出力ファイルには影響しません。最初にロードされる出力ファイルのみに影響します。オンデマンドでロードされるチャンクファイルの場合、output.chunkFilename
オプションが使用されます。ローダーによって作成されたファイルも影響を受けません。この場合、特定のローダーで使用可能なオプションを試す必要があります。
以下のテンプレート文字列を使用して、対応するファイル名を置き換えることができます。異なるコンテキストは異なる置換可能なコンテンツに対応します。例:output.assetModuleFilenameはファイルコンテキストとモジュールコンテキストの使用をサポートしています。
コンパイルレベルで置き換え可能なコンテンツ。
テンプレート | 説明 |
---|---|
[fullhash] | コンパイルのフルハッシュ |
チャンクレベルで置き換え可能なコンテンツ。
テンプレート | 説明 |
---|---|
[id] | 現在のチャンクID |
[name] | チャンク名が存在する場合は名前を使用し、存在しない場合はチャンクIDを使用する |
[chunkhash] | 現在のチャンク内のすべてのtypeの要素から計算された、チャンクのハッシュ値 |
[contenthash] | そのtypeのコンテンツのみを含む要素から計算された、チャンクのハッシュ値。たとえば、JavaScriptタイプのモジュールが生成された場合、現在のチャンク内のすべてのJavaScriptタイプのモジュールのハッシュのみが使用されます。 |
モジュールレベルで置き換え可能なコンテンツ。
テンプレート | 説明 |
---|---|
[id] | モジュールのID |
[hash] | モジュールのハッシュ |
[contenthash] | モジュールコンテンツのハッシュ |
ファイルレベルで置き換え可能なコンテンツ。
テンプレート | 説明 |
---|---|
[file] | クエリまたはフラグメントを含まないファイル名とパス |
[query] | 先頭に? が付いたクエリ |
[fragment] | 先頭に# が付いたフラグメント |
[base] | パスを含まないファイル名のみ(拡張子を含む) |
[filebase] | 同じですが、非推奨 |
[path] | ファイル名を含まないパスのみ |
[name] | 拡張子またはパスを含まないファイル名のみ |
[ext] | 先頭に. が付いた拡張子(output.filenameでは使用できません) |
URLレベルで使用可能な置換
テンプレート | 説明 |
---|---|
[url] | URL |
[file]
は[path][base]
と等しく、[base]
は[name][ext]
と等しいです。フルパスは[path][name][ext][query][fragment]
または[path][base][query][fragment]
または[file][query][fragment]
です。
ハッシュの長さ([hash]
、[contenthash]
、または[chunkhash]
)は、[hash:12]
を使用して指定できます(デフォルトは16)。または、output.hashDigestLength
を指定してグローバルに長さを設定します。
プレースホルダーを実際のファイル名で使用したい場合、プレースホルダーの置換をフィルタリングできます。たとえば、[name].js
というファイルを生成するには、ブラケットの間にバックスラッシュを追加して[name]
プレースホルダーをエスケープする必要があります。そのため、[\name\]
は[name]
を生成し、アセットのname
で置き換えられることはありません。
例:[\id\]
は[id]
を生成し、id
で置き換えられることはありません。
このオプションに関数を使用する場合、その関数には、上記の表の置換に関するデータを含むオブジェクトが渡されます。置換は返された文字列にも適用されます。渡されたオブジェクトは次の型になります。(コンテキストに応じて使用可能なプロパティ)
string
'self'
ライブラリを対象とする場合、特にlibrary.type
が'umd'
の場合、このオプションはライブラリのマウントに使用するグローバルオブジェクトを示します。UMDビルドをブラウザとNode.jsの両方で使用できるようにするには、output.globalObject
オプションを'this'
に設定します。Webのようなターゲットでは、デフォルトでself
になります。
エントリポイントの戻り値は、output.library.name
の値を使用してグローバルオブジェクトに割り当てられます。type
オプションの値に応じて、グローバルオブジェクトはself
、global
、globalThis
など、それぞれ変更される可能性があります。
例として
string
'hex'
ハッシュを生成する際に使用するエンコーディング。ファイル名に'base64'
を使用することは、そのアルファベットに/
文字が含まれているため問題になる可能性があります。同様に、'latin1'
には任意の文字が含まれる可能性があります。
number
16
使用するハッシュダイジェストのプレフィックスの長さ。
'md4' | 'xxhash64'
'xxhash64'
使用するハッシュアルゴリズム。
Rspackは、v1.1以降、デフォルトでより高速なxxhash64
アルゴリズムを使用しています。
string
undefined
ハッシュを更新するためのオプションのソルト。
string
"[id].[fullhash].hot-update.js"
ホットアップデートチャンクのファイル名をカスタマイズします。可能な値の詳細については、output.filename
オプションを参照してください。
ここで許可されるプレースホルダーは[id]
と[fullhash]
のみで、デフォルトは
通常、output.hotUpdateChunkFilename
を変更する必要はありません。
string
"webpackHotUpdate" + output.uniqueName
target
が'web'
に設定されている場合にのみ使用され、ホットアップデートのロードにJSONPを使用します。
JSONP関数は、ホットアップデートチャンクを非同期的にロードするために使用されます。
詳細については、output.chunkLoadingGlobal
を参照してください。
string
"[runtime].[fullhash].hot-update.json"
メインホットアップデートファイル名をカスタマイズします。[fullhash]
と[runtime]
をプレースホルダーとして使用できます。
通常、output.hotUpdateMainFilename
を変更する必要はありません。
boolean
true
Rspackに、出力されたコードの周りにIIFEラッパーを追加するように指示します。
string
'import'
ネイティブのimport()
関数の名前。たとえば、dynamic-import-polyfill
を使用してポリフィルに使用できます。
string
'import.meta'
ネイティブのimport.meta
オブジェクトの名前(ポリフィルと交換できます)。
エントリポイントのエクスポートを公開するライブラリを出力します。
string | string[] | object
例を見てみましょう。
src/index.js
エントリに関数をエクスポートしたとします。
これで、変数MyLibrary
はエントリファイルのエクスポートにバインドされ、Rspackバンドルされたライブラリの使用方法を示します。
上記の例では、単一のエントリファイルをentry
に渡していますが、Rspackは様々な種類のエントリポイント(例:配列またはオブジェクト)を受け入れることができます。
entry
ポイントとして配列を提供した場合、配列の最後にあるものだけが公開されます。
entry
ポイントとしてオブジェクトを提供した場合、library
の配列構文を使用して、すべてのエントリを公開できます。
a.js
とb.js
の両方が関数hello
をエクスポートすると仮定して、ライブラリの使用方法を示します。
string
AMDモジュールでdefine
/require
関数を呼び出すためのコンテナ(グローバル空間に定義)を使用します。
amdContainer
の値は、グローバル変数として設定する必要があります。
これにより、次のバンドルが生成されます。
ライブラリの名前を指定します。
string | string[] | {amd?: string, commonjs?: string, root?: string | string[]}
ライブラリの公開方法を構成します。
型: string
デフォルトで含まれる型は、'var'
、'module'
、'system'
、'assign'
、'assign-properties'
、'this'
、'window'
、'self'
、'global'
、'commonjs'
、'commonjs2'
、'commonjs-module'
、'commonjs-static'
、'amd'
、'amd-require'
、'umd'
、'umd2'
ですが、プラグインによって他の型が追加される場合があります。
以降の例では、エントリポイントによって返される値を示すために_entry_return_
を使用します。
これらのオプションは、エントリポイントの戻り値(つまり、エントリポイントがエクスポートした内容)を、バンドルが組み込まれたスコープでoutput.library.name
によって指定された名前に割り当てます。
ライブラリがロードされると、エントリポイントの戻り値が変数に割り当てられます。
これにより、既存の値を再割り当てする可能性のある暗黙的なグローバル変数が生成されます(注意して使用してください)。
MyLibrary
が事前に定義されていない場合、ライブラリはグローバルスコープに設定されることに注意してください。
type: 'assign'
と似ていますが、MyLibrary
が既に存在する場合はそれを再利用するため、より安全なオプションです。
これらのオプションは、エントリポイントの戻り値(つまり、エントリポイントがエクスポートした内容)を、output.library.name
で定義された名前の下の特定のオブジェクトに割り当てます。
エントリポイントの戻り値は、output.library.name
で指定されたプロパティの下のthis
に割り当てられます。this
の意味はユーザーが決定します。
エントリポイントの戻り値は、output.library.name
の値を使用してwindow
オブジェクトに割り当てられます。
エントリポイントの戻り値は、output.library.name
の値を使用してグローバルオブジェクトに割り当てられます。target
の値に応じて、グローバルオブジェクトはself
、global
、globalThis
などに変わることがあります。
エントリポイントの戻り値は、output.library.name
の値を使用してexports
オブジェクトに割り当てられます。名前が示すように、これはCommonJS環境で使用されます。
output.library.name
を設定しないと、エントリポイントによって返されるすべてのプロパティが指定されたオブジェクトに割り当てられます。既存のプロパティ名に対するチェックはありません。
これらのオプションは、さまざまなモジュールシステムとの互換性を確保するための完全なヘッダーを含むバンドルを生成します。output.library.name
オプションは、次のoutput.library.type
オプションでは異なる意味を持ちます。
ESモジュールを出力します。
ただし、この機能はまだ実験的なものであり、完全にはサポートされていないため、事前にexperiments.outputModule
を有効にしてください。さらに、このスレッドで開発の進捗状況を追跡できます。
エントリポイントの戻り値はmodule.exports
に割り当てられます。名前が示すように、これはNode.js(CommonJS)環境で使用されます。
type: commmonjs2
でoutput.library.name
を指定すると、エントリポイントの戻り値はmodule.exports.[output.library.name]
に割り当てられます。
CommonJSとCommonJS2の違いについて疑問に思っていますか?両者は似ていますが、Rspackのコンテキストでは通常は関係のない微妙な違いがあります。(詳細については、このissueをお読みください。)
個々のエクスポートはmodule.exports
のプロパティとして設定されます。「static」という名前は、出力が静的に分析可能であり、したがって名前付きエクスポートがNode.jsを介してESMにインポート可能であることを意味します。
入力
出力
使用例 (CommonJS)
使用例 (ESM)
これにより、ライブラリはAMDモジュールとして公開されます。
AMDモジュールでは、エントリチャンク(つまり、<script>
タグによってロードされた最初のスクリプト)を、define
やrequire
などの特定のプロパティで定義する必要があります。これは通常、RequireJSまたは互換性のあるローダー(almondなど)によって提供されます。それ以外の場合は、生成されたAMDバンドルを直接ロードすると、define is not defined
のようなエラーが発生します。
次の設定の場合
生成された出力は、"MyLibrary"
という名前で定義されます。
バンドルはスクリプトタグの一部として含めることができ、バンドルは次のように呼び出すことができます。
output.library.name
が未定義の場合、代わりに次のものが生成されます。
このバンドルは、<script>
タグで直接ロードした場合、期待通りに動作しないか、まったく動作しません(almondローダーの場合)。これは、そのファイルへの実際のパスを介してRequireJS互換の非同期モジュールローダーでのみ動作するため、この場合、これらのファイルがサーバーで直接公開されている場合、output.path
とoutput.filename
がこの特定の設定で重要になる可能性があります。
これにより、すぐに実行されるAMD require(dependencies, factory)
ラッパーを使用して出力がパッケージ化されます。
'amd-require'
型では、別の後続の呼び出しを必要とせずにAMD依存関係を使用できます。'amd'
型と同様に、これは、Rspackの出力がロードされる環境で適切なrequire
関数が利用可能であるかどうかに依存します。
この型では、ライブラリ名を使用できません。
これにより、すべてのモジュール定義でライブラリが公開され、CommonJS、AMD、グローバル変数として機能します。UMDリポジトリで詳細を確認してください。
この場合、モジュールに名前を付けるにはlibrary.name
プロパティが必要です。
そして最後に、出力は次のようになります。
library.name
を省略すると、オブジェクト割り当てセクションで説明されているように、エントリポイントによって返されるすべてのプロパティがルートオブジェクトに直接割り当てられます。例
出力は次のようになります。
ターゲットごとに異なる名前を指定するために、library.name
にオブジェクトを指定できます。
これにより、ライブラリはSystem.register
モジュールとして公開されます。
Systemモジュールでは、Rspackバンドルが実行されるときにブラウザにグローバル変数System
が存在する必要があります。System.register
形式にコンパイルすると、追加の設定なしでSystem.import('/bundle.js')
を実行でき、RspackバンドルがSystemモジュールレジストリにロードされます。
出力
output.library.type
をsystem
に設定することに加えて、設定にoutput.library.name
を追加すると、出力バンドルはライブラリ名をSystem.register
の引数として持つようになります。
type: 'jsonp'
これにより、エントリポイントの戻り値がjsonpラッパーにラップされます。
ライブラリの依存関係は、externals
設定によって定義されます。
ライブラリとして公開するエクスポートを指定します。
string | string[]
undefined
デフォルトではundefined
であり、全体の(名前空間)オブジェクトをエクスポートします。以下の例は、output.library.type: 'var'
を使用する場合のこの設定の効果を示しています。
エントリポイントのデフォルトエクスポートは、ライブラリ名に割り当てられます。
output.library.export
に配列を渡すこともできます。これは、ライブラリ名に割り当てるモジュールへのパスとして解釈されます。
そして、これがライブラリコードです。
UMDラッパーにコメントを追加します。
string | { amd?: string, commonjs?: string, commonjs2?: string, root?: string }
undefined
各umd
型に同じコメントを挿入するには、auxiliaryComment
を文字列に設定します。
これにより、次のようになります。
きめ細かい制御を行うには、オブジェクトを渡します。
boolean
undefined
output.library.type: "umd"
を使用する場合、output.library.umdNamedDefine
をtrue
に設定すると、UMDビルドのAMDモジュールに名前が付けられます。それ以外の場合は、匿名のdefine
が使用されます。
AMDモジュールは次のようになります。
boolean
false
JavaScriptファイルをモジュール型として出力します。実験的な機能であるため、デフォルトでは無効になっています。使用するには、experiments.outputModule
をtrue
に設定する必要があります。
有効にした場合、Rspack は内部的に output.iife
を false
、output.scriptType
を 'module'
、terserOptions.module
を true
に設定します。
他者が利用するライブラリをコンパイルするために Rspack を使用している場合、output.module
が true
のときは、output.libraryTarget
を 'module'
に設定してください。
string
path.resolve(process.cwd(), 'dist')
出力ディレクトリ(絶対パス)。
このパラメータ内の [fullhash]
は、コンパイルのハッシュに置き換えられます。
パスには感嘆符(!
)を含めることはできません(ローダー構文のために Rspack によって予約されています)。
boolean | 'verbose'
true
バンドルに含まれるモジュールに関する情報をコメントとして含めるよう Rspack に指示します。このオプションは、development
モードでは true
、production
モード では false
がデフォルトです。'verbose'
は、エクスポート、ランタイム要件、およびベイルアウトなどの詳細情報を表示します。
これらのコメントによって提供されるデータは、生成されたコードを読む際の開発中に役立ちますが、本番環境では使用しないでください。
また、ツリーシェイキングに関する情報も生成されたバンドルに追加します。
'auto' | string | ((pathData: PathData, assetInfo?: JsAssetInfo) => string)
targets
が 'web'
または 'webworker'
の場合 'auto'
。それ以外の場合は undefined
このオプションは、画像やファイルなどの参照リソースのURL接頭辞を決定します。
例えば、設定ファイルがあるとします。
非初期チャンクファイルの場合、リクエストURLは次のようになります。/assets/1.chunk.js
。
画像への参照の場合、リクエストURLは次のようになります。/assets/logo.png
。
また、CDNを使用して製品を展開する場合にも役立ちます。
すべての資産リソースについて、それらのリクエストURLは次のようになります。https://cdn.example.com/assets/logo.png
。
動的にpublicPathを設定する
ランタイムコードで__webpack_public_path__
を使用してpublicPath
を動的に設定できます。__webpack_public_path__
はRspackの設定内のpublicPath
を上書きしますが、動的にロードされたリソースにのみ有効になります。
まず、publicPath.js
を作成します。
次に、エントリファイルの最初の行にインポートします。
'module' | 'text/javascript' | boolean
false
このオプションにより、<script type="module" ...>
など、カスタムスクリプトタイプで非同期チャンクをロードできます。
output.module
が true
に設定されている場合、output.scriptType
は false
ではなく 'module'
がデフォルトになります。
string
'[file].map[query]'
devtool
が出力ファイルを作成する 'source-map'
に設定されている場合にのみ有効になります。
output.filename
の [name]
、[id]
、[fullhash]
、[chunkhash]
置換を使用できます。それらに加えて、テンプレート文字列 のファイル名レベルに記載されている置換を使用できます。
boolean
false
パフォーマンスコストを考慮して、ECMAScriptモジュール仕様に従ってモジュールのロードエラーを処理します。
例外がスローされた場合にモジュールをモジュールインスタンスキャッシュ(require.cache)から削除するようRspackに指示します。
true | string | object
undefined
Trusted Types の互換性を制御します。有効にすると、Rspack は Trusted Types のサポートを検出し、サポートされている場合は、Trusted Types ポリシーを使用して、動的にロードするスクリプト URL を作成します。require-trusted-types-for
Content Security Policy ディレクティブの下でアプリケーションが実行される場合に使用します。
デフォルトでは無効になっています(互換性なし、スクリプト URL は文字列です)。
true
に設定すると、Rspack は output.uniqueName
を Trusted Types ポリシー名として使用します。policyName
プロパティから取得されます。string
output.library
名、またはコンテキスト内の package.json
からのパッケージ名にデフォルトで設定されます。どちらも見つからない場合、''
に設定されます。グローバルを使用する場合、複数のRspackランタイムが競合しないようにするためのRspackビルドの一意の名前。
output.uniqueName
は、次の項目の一意のグローバルを生成するために使用されます。
false | 'fetch', 'async-node'
'fetch'
WebAssemblyモジュールのロード方法を設定するためのオプション。デフォルトで含まれる方法は'fetch'
(web/webworker)、'async-node'
(Node.js)ですが、プラグインによって他の方法が追加される場合があります。
デフォルト値は、異なるtarget
によって影響を受ける可能性があります。
target
が'web'
、'webworker'
、'electron-renderer'
、または'node-webkit'
に設定されている場合、デフォルトは'fetch'
です。target
が'node'
、'async-node'
、'electron-main'
、または'electron-preload'
に設定されている場合、デフォルトは'async-node'
です。string
'[hash].module.wasm'
WebAssemblyモジュールのファイル名を指定します。output.path
ディレクトリ内の相対パスとして指定する必要があります。
false | 'jsonp' | 'import-scripts' | 'require' | 'async-node' | 'import'
false
新しいオプションworkerChunkLoading
は、ワーカーのチャンクの読み込みを制御します。
このオプションのデフォルト値はtarget
の設定によって異なります。詳細については、Rspackのデフォルト設定で"workerChunkLoading"
を検索してください。
string
""
ワーカーのpublicPathを設定します。output.publicPathの値がデフォルトです。ワーカースクリプトが他のスクリプトとは異なるパスにある場合にのみ、このオプションを使用してください。
false | 'fetch-streaming' | 'fetch' | 'async-node' | string
false
ワーカー内のWebAssemblyモジュールのロード方法を設定するためのオプションで、output.wasmLoadingの値がデフォルトです。
output.library.auxiliaryComment
を代わりに使用することをお勧めします。
このサポートを削除する可能性があるため、libraryExport
と同じように動作する output.library.export を代わりに使用することをお勧めします。
将来的に output.libraryTarget
のサポートを削除する可能性があるため、代わりに output.library.type
を使用してください。
output.library.umdNamedDefine
を代わりに使用することをお勧めします。
boolean
false
、本番モードでは true
Rspack は CSS モジュールを解析するために CSS にいくつかのメタデータを追加し、この設定はこれらのメタデータを圧縮するかどうかを決定します。
例として
圧縮後 👇