モジュールタイプ
Webバンドラとして、rolldownはJavaScriptファイルだけでなく、CSS(将来)、JSON、dataurlなどの他のタイプの入力項目も受け付けるべきです。
したがって、追加のプラグインなしでrolldownによって入力項目が認識できる場合、この入力項目のタイプはrolldownによってファーストクラスシチズンとして扱われていることを意味します。
これらのファーストクラスのタイプをモジュールタイプ
と呼びます。
ユーザーに影響がある点
ほとんどのシナリオでは、ユーザーはこのコンセプトを考慮する必要はありません。rolldownがユーザーに代わって自動的に処理するからです。
Rolldownはファイルの拡張子を使用してモジュールタイプ
を決定しますが、場合によっては不十分です。たとえば、ファイルにJSONデータが含まれているが、拡張子が.data
である場合。この場合、rolldownは拡張子が.json
でないため、JSONファイルとして認識できません。
この場合、ユーザーはrolldown.config.mjs
でmoduleTypes
フィールドを設定して、.data
拡張子に対するモジュールタイプ
をrolldownに伝える必要があります。
export default {
moduleTypes: {
'.data': 'json',
},
}
プラグイン
プラグイン作成者は読み込み
フックや変換
フックなど、多くの場所でファイルのモジュールタイプ
も指定できます。
モジュールタイプ
はプラグインが従うべき公式の規則を作成し、独立したプラグインが一定のタイプのファイルを統一された方法で処理でき、他のプラグインの詳細を考慮する必要がなくなります。
たとえば、viteは.vue
ファイルに対して仮想cssモジュールを作成し、仮想モジュールのIDに?lang=css
を追加して、これらのモジュールがvueプラグインによってcssモジュールとして認識されるようにします。しかし、これはvueプラグインのみの規則であり、他のプラグインは従わない可能性があります。
現在、モジュールタイプ
を使用すると、viteは仮想cssモジュールのモジュールタイプ
をcss
として指定でき、postcssプラグインなどの他のプラグインはvueプラグインの詳細を知らなくてもこれらのcssモジュールを処理できます。
モジュールタイプ
のもう1つの機能は、プラグインによる新しいタイプのファイルのサポートが容易になることです。たとえば、.jsonc
ファイルのサポートを追加するために、プラグインは単に読み込み
フックで.jsonc
ファイルのコメントを削除し、モジュールタイプ
をjson
として指定するだけです。Rolldownが処理を行います。