Skip to content

Commit 53168fb

Browse files
committed
docs: missing changes guides
1 parent c8e2a99 commit 53168fb

File tree

2 files changed

+70
-11
lines changed

2 files changed

+70
-11
lines changed

changes/per-environment-apis.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@
44
[Environment API feedback discussion](https://github.com/vitejs/vite/discussions/16358)でフィードバックをお寄せください。
55
:::
66

7-
ViteDevServer のモジュールグラフに関連する複数の API は、より独立した環境 API に置き換えられました。
8-
9-
- `server.moduleGraph` -> [`environment.moduleGraph`](/guide/api-environment#separate-module-graphs)
10-
- `server.transformRequest` -> `environment.transformRequest`
11-
- `server.warmupRequest` -> `environment.warmupRequest`
7+
モジュールグラフとモジュール変換に関連する `ViteDevServer` の複数の API が `DevEnvironment` インスタンスに移動されました。
128

139
影響範囲: `Vite プラグイン作成者`
1410

1511
::: warning 将来の廃止予定
16-
Environment インスタンスは `v6.0` で初めて導入されました。`v7.0` では現在環境にある `server.moduleGraph` やその他のメソッドが廃止される予定です。まだサーバーのメソッドから移行することはお勧めしません。使用状況を明確にするために、vite の設定でこれらを設定してください。
12+
`Environment` インスタンスは `v6.0` で初めて導入されました。`v7.0` では現在環境にある `server.moduleGraph` やその他のメソッドが廃止される予定です。まだサーバーのメソッドから移行することはお勧めしません。使用状況を明確にするために、vite の設定でこれらを設定してください。
1713

1814
```ts
1915
future: {
@@ -26,8 +22,12 @@ future: {
2622

2723
## 動機
2824

29-
// TODO: <small>(訳注: 原文ママ)</small>
25+
Vite v5 以前では、単一の Vite 開発サーバーには常に 2 つの環境(`client``ssr`)がありました。 `server.moduleGraph` には、これらの両方の環境からの混合モジュールが含まれていました。ノードは `clientImportedModules``ssrImportedModules` のリストで接続されていました(ただし、それぞれに対して単一の `importers` リストが維持されていました)。変換されたモジュールは `id``ssr` ブーリアンで表されていました。このブール値は、`server.moduleGraph.getModuleByUrl(url, ssr)``server.transformRequest(url, { ssr })` などの API に渡す必要がありました。
26+
27+
Vite v6 では、任意の数のカスタム環境(`client``ssr``edge` など)を作成できるようになりました。単一の `ssr` ブール値では不十分になりました。API を `server.transformRequest(url, { environment })` という形式に変更する代わりに、これらのメソッドを環境インスタンスに移動し、Vite 開発サーバーなしで呼び出せるようにしました。
3028

3129
## 移行ガイド
3230

33-
// TODO: <small>(訳注: 原文ママ)</small>
31+
- `server.moduleGraph` -> [`environment.moduleGraph`](/guide/api-environment#separate-module-graphs)
32+
- `server.transformRequest(url, ssr)` -> `environment.transformRequest(url)`
33+
- `server.warmupRequest(url, ssr)` -> `environment.warmupRequest(url)`

changes/shared-plugins-during-build.md

Lines changed: 62 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
[Environment API feedback discussion](https://github.com/vitejs/vite/discussions/16358)でフィードバックをお寄せください。
55
:::
66

7-
// TODO: <small>(訳注: 原文ママ)</small>
87
[ビルド時の共有プラグイン](/guide/api-environment.md#shared-plugins-during-build)を参照してください。
98

109
影響範囲: `Vite プラグイン作成者`
@@ -15,8 +14,68 @@
1514

1615
## 動機
1716

18-
// TODO: <small>(訳注: 原文ママ)</small>
17+
開発とビルドのプラグインパイプラインを調整します。
1918

2019
## 移行ガイド
2120

22-
// TODO: <small>(訳注: 原文ママ)</small>
21+
環境をまたいでプラグインを共有できるようにするには、プラグインの状態を現在の環境でキー付けする必要があります。以下の形式のプラグインは、すべての環境における変換されたモジュールの数を数えます。
22+
23+
```js
24+
function CountTransformedModulesPlugin() {
25+
let transformedModules
26+
return {
27+
name: 'count-transformed-modules',
28+
buildStart() {
29+
transformedModules = 0
30+
},
31+
transform(id) {
32+
transformedModules++
33+
},
34+
buildEnd() {
35+
console.log(transformedModules)
36+
},
37+
}
38+
}
39+
```
40+
41+
代わりに、各環境で変換されたモジュールの数を数えたい場合は、マップを保持する必要があります。
42+
43+
```js
44+
function PerEnvironmentCountTransformedModulesPlugin() {
45+
const state = new Map<Environment, { count: number }>()
46+
return {
47+
name: 'count-transformed-modules',
48+
perEnvironmentStartEndDuringDev: true,
49+
buildStart() {
50+
state.set(this.environment, { count: 0 })
51+
}
52+
transform(id) {
53+
state.get(this.environment).count++
54+
},
55+
buildEnd() {
56+
console.log(this.environment.name, state.get(this.environment).count)
57+
}
58+
}
59+
}
60+
```
61+
62+
このパターンを簡素化するために、Vite の内部では、`usePerEnvironmentState` ヘルパーを使用しています:
63+
64+
```js
65+
function PerEnvironmentCountTransformedModulesPlugin() {
66+
const state = usePerEnvironmentState<{ count: number }>(() => ({ count: 0 }))
67+
return {
68+
name: 'count-transformed-modules',
69+
perEnvironmentStartEndDuringDev: true,
70+
buildStart() {
71+
state(this).count = 0
72+
}
73+
transform(id) {
74+
state(this).count++
75+
},
76+
buildEnd() {
77+
console.log(this.environment.name, state(this).count)
78+
}
79+
}
80+
}
81+
```

0 commit comments

Comments
 (0)