Skip to content

Commit 1a37e3b

Browse files
authored
docs: add plugin hook filter info to Plugin Authors guide (vitejs#2173)
1 parent 050d0fe commit 1a37e3b

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

guide/api-plugin.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,41 @@ normalizePath('foo/bar') // 'foo/bar'
548548

549549
Vite は [`@rollup/pluginutils``createFilter`](https://github.com/rollup/plugins/tree/master/packages/pluginutils#createfilter) 関数を公開し、Vite 固有のプラグインやインテグレーションが標準の include/exclude フィルタリングのパターンを使用できるようにします。これは Vite コア自体でも使用されています。
550550

551+
### フックフィルター {#hook-filters}
552+
553+
Rolldown は[フックフィルター機能](https://rolldown.rs/plugins/hook-filters)を導入して、Rust と JavaScript のランタイムの間の通信オーバーヘッドを削減しました。この機能により、プラグインはフックを呼び出すタイミングを決定するパターンを指定でき、不要なフック呼び出しを回避することでパフォーマンスを向上させます。
554+
555+
これは Rollup 4.38.0+ および Vite 6.3.0+ でもサポートされています。プラグインを古いバージョンとの後方互換性を持たせるには、フックハンドラー内でもフィルターを実行するようにしてください。
556+
557+
```js
558+
export default function myPlugin() {
559+
const jsFileRegex = /\.js$/
560+
561+
return {
562+
name: 'my-plugin',
563+
// 例: .js ファイルに対してのみ transform を呼び出す
564+
transform: {
565+
filter: {
566+
id: jsFileRegex,
567+
},
568+
handler(code, id) {
569+
// 後方互換性のための追加チェック
570+
if (!jsFileRegex.test(id)) return null
571+
572+
return {
573+
code: transformCode(code),
574+
map: null,
575+
}
576+
},
577+
},
578+
}
579+
}
580+
```
581+
582+
::: tip
583+
[`@rolldown/pluginutils`](https://www.npmjs.com/package/@rolldown/pluginutils) は、`exactRegex` や `prefixRegex` のようなフックフィルター用のいくつかのユーティリティーをエクスポートしています。
584+
:::
585+
551586
## クライアントサーバーとの通信 {#client-server-communication}
552587

553588
Vite の 2.9 から、プラグインによりクライアントとの通信に役立つ機能をいくつか提供しています。

guide/rolldown.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -322,14 +322,9 @@ const plugin = {
322322

323323
### フックフィルター機能 {#hook-filter-feature}
324324

325-
Rolldown は[フックフィルター機能](https://rolldown.rs/plugins/hook-filters)を導入して、Rust と JavaScript のランタイムの間の通信を縮小しました。この機能を使用することで、プラグインのパフォーマンスを向上させることができます。
326-
これは、Rollup 4.38.0+ および Vite 6.3.0+ によってサポートされています。プラグインを古いバージョンとの後方互換性を持たせるには、フックハンドラー内でフィルターを実行してください。
325+
Rolldown は[フックフィルター機能](https://rolldown.rs/plugins/hook-filters)を導入して、Rust と JavaScript のランタイムの間の通信オーバーヘッドを削減しました。この機能により、プラグインはフックを呼び出すタイミングを決定するパターンを指定でき、不要なフック呼び出しを回避することでパフォーマンスを向上させます。
327326

328-
::: tip
329-
330-
[`@rolldown/pluginutils`](https://www.npmjs.com/package/@rolldown/pluginutils) は、`exactRegex``prefixRegex` のようなフックフィルター用のいくつかのユーティリティーをエクスポートしています。
331-
332-
:::
327+
詳細は [フックフィルターガイド](/guide/api-plugin#hook-filters) を参照してください。
333328

334329
### `load` または `transform` フックでコンテンツを JavaScript に変換する
335330

0 commit comments

Comments
 (0)