Skip to content

Commit da0edb9

Browse files
authored
docs(rolldown): add withFilter + performance chapter (#1929)
1 parent fed4f71 commit da0edb9

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

guide/rolldown.md

+29-2
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,39 @@ Rolldown は不明または無効なオプションが渡されるとエラー
9898
9999
このオプションを自身で設定していない場合は、使用しているフレームワークで修正される可能性があります。それまでの間、`ROLLDOWN_OPTIONS_VALIDATION=loose` 環境変数を設定することでこのエラーを抑制できます。
100100

101-
## ネイティブプラグインの有効化
101+
## パフォーマンス
102+
103+
`rolldown-vite` は既存のエコシステムとの互換性を確保することに重点を置いており、デフォルトはスムーズな移行を目的としています。より高速な Rust ベースの内部プラグインやその他のカスタマイズに切り替えることで、さらなるパフォーマンス向上を得ることができます。
104+
105+
### ネイティブプラグインの有効化
102106

103107
Rolldown と Oxc のおかげで、エイリアスや resolve プラグインなどの Vite の内部プラグインが Rust に変換されました。執筆時点では、これらのプラグインの動作が JavaScript 版とは異なる可能性があるため、デフォルトでは有効になっていません。
104108

105109
これらをテストするには、Vite の設定で `experimental.enableNativePlugin` オプションを `true` に設定できます。
106110

111+
### `withFilter` ラッパー
112+
113+
プラグイン作者は、Rust と JavaScript のランタイム間の通信オーバーヘッドを削減するために、[フックフィルター機能](#hook-filter-feature)を使用するオプションがあります。
114+
しかし、使用されているプラグインの一部がまだこの機能を使用していない場合でも、その恩恵を受けたい場合は、`withFilter` ラッパーを使用してプラグインを自分でフィルターでラップできます。
115+
116+
```js
117+
// vite.config.ts 内
118+
import { withFilter, defineConfig } from 'vite'
119+
import svgr from 'vite-plugin-svgr'
120+
121+
export default defineConfig({
122+
plugins: [
123+
// `.svg?react` で終わるファイルに対してのみ `svgr` プラグインをロードする
124+
withFilter(
125+
svgr({
126+
/*...*/
127+
}),
128+
{ load: { id: /\.svg?react$/ } },
129+
),
130+
],
131+
})
132+
```
133+
107134
## 問題の報告
108135

109136
これは実験的な統合であるため、問題が発生する可能性があります。問題が発生した場合は、**メインの Vite リポジトリーではなく**[`vitejs/rolldown-vite`](https://github.com/vitejs/rolldown-vite) リポジトリーに報告してください。
@@ -231,7 +258,7 @@ const plugin = {
231258
},
232259
```
233260

234-
### フックフィルター機能
261+
### フックフィルター機能 {#hook-filter-feature}
235262

236263
Rolldown は[フックフィルター機能](https://rolldown.rs/guide/plugin-development#plugin-hook-filters)を導入して、Rust と JavaScript のランタイムの間の通信を縮小しました。この機能を使用することで、プラグインのパフォーマンスを向上させることができます。
237264
これは、Rollup 4.38.0+ および Vite 6.3.0+ によってサポートされています。プラグインを古いバージョンとの後方互換性を持たせるには、フックハンドラー内でフィルターを実行してください。

0 commit comments

Comments
 (0)