Skip to content

Commit 4da553e

Browse files
authored
docs: clarify manifest.json imports field is JS chunks only (#2251)
1 parent 3fb8eb6 commit 4da553e

File tree

2 files changed

+61
-5
lines changed

2 files changed

+61
-5
lines changed

.vitepress/config.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,27 @@ export default defineConfig({
485485
markdown: {
486486
// languages used for twoslash and jsdocs in twoslash
487487
languages: ['ts', 'js', 'json'],
488-
codeTransformers: [transformerTwoslash()],
488+
codeTransformers: [
489+
transformerTwoslash(),
490+
// style:* サポートを追加
491+
{
492+
root(hast) {
493+
const meta = this.options.meta?.__raw
494+
?.split(' ')
495+
.find((m) => m.startsWith('style:'))
496+
if (meta) {
497+
const style = meta.slice('style:'.length)
498+
const rootPre = hast.children.find(
499+
(n): n is typeof n & { type: 'element'; tagName: 'pre' } =>
500+
n.type === 'element' && n.tagName === 'pre',
501+
)
502+
if (rootPre) {
503+
rootPre.properties.style += '; ' + style
504+
}
505+
}
506+
},
507+
},
508+
],
489509
config(md) {
490510
md.use(groupIconMdPlugin, {
491511
titleBar: {

guide/backend-integration.md

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464

6565
3. 本番環境向けには、`vite build` を実行後、他のアセットファイルと共に `.vite/manifest.json` ファイルが生成されます。マニフェストファイルの内容は以下のようになります:
6666

67-
```json [.vite/manifest.json]
67+
```json [.vite/manifest.json] style:max-height:400px
6868
{
6969
"_shared-B7PI925R.js": {
7070
"file": "assets/shared-B7PI925R.js",
@@ -106,17 +106,53 @@
106106

107107
マニフェストは `Record<name, chunk>` 構造になっており、各チャンクは `ManifestChunk` インターフェースに従います:
108108

109-
```ts
109+
```ts style:max-height:400px
110110
interface ManifestChunk {
111+
/**
112+
* このチャンク / アセットの入力ファイル名(既知の場合)
113+
*/
111114
src?: string
115+
/**
116+
* このチャンク / アセットの出力ファイル名
117+
*/
112118
file: string
119+
/**
120+
* このチャンクによってインポートされる CSS ファイルのリスト
121+
*
122+
* このフィールドは JS チャンクにのみ存在します。
123+
*/
113124
css?: string[]
125+
/**
126+
* このチャンクによってインポートされる CSS ファイルを除くアセットファイルのリスト
127+
*
128+
* このフィールドは JS チャンクにのみ存在します。
129+
*/
114130
assets?: string[]
131+
/**
132+
* このチャンクまたはアセットがエントリーポイントかどうか
133+
*/
115134
isEntry?: boolean
135+
/**
136+
* このチャンク / アセットの名前(既知の場合)
137+
*/
116138
name?: string
117-
names?: string[]
139+
/**
140+
* このチャンクが動的エントリーポイントかどうか
141+
*
142+
* このフィールドは JS チャンクにのみ存在します。
143+
*/
118144
isDynamicEntry?: boolean
145+
/**
146+
* このチャンクによって静的にインポートされるチャンクのリスト
147+
*
148+
* 値はマニフェストのキーです。このフィールドは JS チャンクにのみ存在します。
149+
*/
119150
imports?: string[]
151+
/**
152+
* このチャンクによって動的にインポートされるチャンクのリスト
153+
*
154+
* 値はマニフェストのキーです。このフィールドは JS チャンクにのみ存在します。
155+
*/
120156
dynamicImports?: string[]
121157
}
122158
```
@@ -128,7 +164,7 @@
128164
- **アセットチャンク**: 画像やフォントなどのインポートされたアセットから生成されます。キーはプロジェクトルートからの相対パスです。
129165
- **CSS ファイル**: [`build.cssCodeSplit`](/config/build-options.md#build-csscodesplit)`false` の場合、キー `style.css` で単一の CSS ファイルが生成されます。`build.cssCodeSplit``false` でない場合、キーは JS チャンクと同様に生成されます(つまり、エントリーチャンクは `_` プレフィックスなし、非エントリーチャンクは `_` プレフィックスあり)。
130166

131-
チャンクには、静的インポートと動的インポートの情報(どちらもマニフェスト内の対応するチャンクをマップするキー)と、それらと対応する CSS とアセットファイルが含まれます(あれば)。
167+
JS チャンク(アセットまたは CSS 以外のチャンク)には、静的インポートと動的インポートの情報(どちらもマニフェスト内の対応するチャンクをマップするキー)と、それらと対応する CSS とアセットファイルが含まれます(あれば)。
132168

133169
4. このファイルを使用してハッシュを付加されたファイル名でリンクや preload directives をレンダリングすることができます。
134170

0 commit comments

Comments
 (0)