# 機能設計書 72-フルビルド（vueパッケージ）

## 概要

本ドキュメントは、Vue 3フレームワークのメインパッケージである `vue` パッケージのフルビルド構成を記述する。このパッケージは、ランタイム（`@vue/runtime-dom`）とテンプレートコンパイラ（`@vue/compiler-dom`）を統合し、ESM/CJS/Global（IIFE）など複数のフォーマットで配布されるVue 3の公式エントリーポイントである。

### 本機能の処理概要

`vue` パッケージは、Vue 3を利用する開発者が最初にインポートするパッケージであり、ランタイムとコンパイラの両方を含む「フルビルド」と、ランタイムのみの「ランタイムビルド」の2種類のエントリーポイントを提供する。フルビルドでは、テンプレートオプションのオンザフライコンパイルが可能となり、ブラウザ上でテンプレート文字列を直接レンダリング関数に変換できる。

**業務上の目的・背景**：Vue 3はモノレポ構造で複数のパッケージに分割されているが、エンドユーザーが個々の内部パッケージを意識する必要はない。`vue` パッケージは、`@vue/runtime-dom`、`@vue/compiler-dom`、`@vue/compiler-sfc`、`@vue/server-renderer` などの内部パッケージを統合し、単一の `vue` インポートですべてのVue機能にアクセスできるようにする。これにより、開発者体験が向上し、バージョン整合性の問題も防止される。

**機能の利用シーン**：
- CDN経由でのVue利用（`vue.global.js`）: `<script>` タグでの直接読み込み、テンプレートのオンザフライコンパイル
- バンドラー（webpack, Vite等）経由での利用（`vue.esm-bundler.js`）: ESMインポート、ツリーシェイキング対応
- Node.js環境での利用（`vue.cjs.js`）: SSR、テスト環境
- ブラウザESM利用（`vue.esm-browser.js`）: `<script type="module">` での直接利用

**主要な処理内容**：
1. `compileToFunction`: テンプレート文字列またはHTMLElement（DOM要素）をレンダリング関数にコンパイルする。コンパイル結果はキャッシュされる
2. `registerRuntimeCompiler`: フルビルド時にランタイムコアにコンパイラを登録し、テンプレートオプションのオンザフライコンパイルを有効化
3. ランタイムのみビルド（`runtime.ts`）: コンパイラを含まない軽量ビルド。テンプレートのランタイムコンパイルが要求された場合は警告を表示
4. 開発モード初期化（`dev.ts`）: 開発ビルドの情報メッセージ表示とカスタムフォーマッターの初期化
5. JSXランタイム: React JSXランタイム互換のJSXサポート
6. サブパス公開: `vue/compiler-sfc`、`vue/server-renderer`、`vue/jsx-runtime` による内部パッケージの再エクスポート
7. 複数ビルドフォーマット: ESM Bundler, ESM Browser, CJS, Global (IIFE) + それぞれのruntime-onlyバリエーション

**関連システム・外部連携**：
- `@vue/runtime-dom`: ブラウザDOM操作を含むランタイム（全APIを再エクスポート）
- `@vue/compiler-dom`: DOM向けテンプレートコンパイラ（フルビルドのみ）
- `@vue/compiler-sfc`: SFCコンパイラ（`vue/compiler-sfc` サブパス経由で公開）
- `@vue/server-renderer`: SSRレンダラー（`vue/server-renderer` サブパス経由で公開）
- `@vue/shared`: 共有ユーティリティ

**権限による制御**：権限制御の概念は存在しない。ただし、`__DEV__` フラグによる開発モード/本番モードの切り替えにより、本番環境では警告メッセージやデバッグ情報が除外される。

## 関連画面

| 画面No | 画面名 | 関連種別 | 関連する操作・処理 |
|--------|--------|----------|------------------|
| - | - | - | フレームワークパッケージのため、特定画面との直接的な関連はない |

## 機能種別

フレームワークビルド / パッケージ統合 / ランタイムコンパイル

## 入力仕様

### 入力パラメータ

#### compileToFunction

| パラメータ名 | 型 | 必須 | 説明 | バリデーション |
|-------------|-----|-----|------|---------------|
| template | string \| HTMLElement | Yes | コンパイル対象のテンプレート文字列またはDOM要素 | HTMLElementの場合はinnerHTMLを取得。'#'で始まる場合はCSSセレクタとして解決 |
| options | CompilerOptions | No | コンパイルオプション | @vue/compiler-domのCompilerOptions型に準拠 |

### 入力データソース

- テンプレート文字列: コンポーネント定義の `template` オプション
- HTMLElement: DOM要素の `innerHTML` からテンプレートを取得
- CSSセレクタ: '#'で始まるテンプレート文字列は `document.querySelector` でDOM要素を解決

## 出力仕様

### 出力データ

| 項目名 | 型 | 説明 |
|--------|-----|------|
| RenderFunction | RenderFunction | コンパイルされたレンダリング関数（_rc: trueフラグ付き） |
| compile | Function | compileToFunctionのエクスポートエイリアス |
| @vue/runtime-domの全API | - | ref, reactive, computed, watch, createApp等のすべてのVue公開API |

### 出力先

- ブラウザ環境: グローバル変数 `Vue`（IIFEビルド）またはESMモジュール
- Node.js環境: CommonJSモジュール
- バンドラー: ESMモジュール（ツリーシェイキング対応）

## 処理フロー

### 処理シーケンス

```
1. パッケージ初期化
   └─ __DEV__フラグが有効な場合、initDev()を呼び出し
       ├─ ブラウザ環境かつ非バンドラービルドの場合: 開発ビルド使用の情報メッセージ表示
       └─ initCustomFormatter(): Vue DevToolsカスタムフォーマッターの初期化

2. コンパイラ登録（フルビルドのみ）
   └─ registerRuntimeCompiler(compileToFunction)
       └─ ランタイムコアの内部compileに関数を設定し、テンプレートオプションのオンザフライコンパイルを有効化

3. テンプレートコンパイル（compileToFunction呼び出し時）
   ├─ 入力の正規化
   │   ├─ HTMLElementの場合: innerHTML取得
   │   ├─ '#'で始まる場合: document.querySelectorでDOM要素を検索しinnerHTML取得
   │   └─ 文字列の場合: そのまま使用
   ├─ キャッシュチェック
   │   └─ genCacheKey(template, options)でキーを生成し、compileCache[key]を参照
   ├─ コンパイルオプション構築
   │   ├─ hoistStatic: trueをデフォルト設定
   │   ├─ 開発モード時: onError/onWarnコールバック設定
   │   └─ customElementsの自動検出設定
   ├─ compile(template, opts)でコンパイル実行
   │   └─ @vue/compiler-domのcompile関数を呼び出し、JavaScriptコード文字列を取得
   ├─ レンダリング関数の生成
   │   ├─ グローバルビルド: new Function(code)()で関数生成
   │   └─ 非グローバルビルド: new Function('Vue', code)(runtimeDom)で関数生成
   ├─ _rcフラグ設定
   │   └─ render._rc = trueでランタイムコンパイル済みマーカーを設定
   └─ キャッシュに保存して返却

4. ランタイムのみビルドのコンパイル呼び出し時
   └─ __DEV__時に警告メッセージを表示
       ├─ ESMバンドラー: "vue/dist/vue.esm-bundler.js"へのエイリアス設定を推奨
       ├─ ESMブラウザ: "vue.esm-browser.js"の使用を推奨
       └─ グローバル: "vue.global.js"の使用を推奨
```

### フローチャート

```mermaid
flowchart TD
    A[vueパッケージ読み込み] --> B{ビルド種別}
    B -->|フルビルド<br>src/index.ts| C[compileToFunction定義]
    B -->|ランタイムのみ<br>src/runtime.ts| D[compile=警告関数]

    C --> E[registerRuntimeCompiler<br>コンパイラをランタイムに登録]
    D --> F[ランタイムAPIのみエクスポート]

    E --> G[テンプレートオプション使用時]
    G --> H{template入力種別}
    H -->|HTMLElement| I[innerHTML取得]
    H -->|#セレクタ| J[querySelector -> innerHTML]
    H -->|文字列| K[そのまま使用]

    I --> L{キャッシュあり?}
    J --> L
    K --> L
    L -->|Yes| M[キャッシュ返却]
    L -->|No| N[compile実行<br>@vue/compiler-dom]
    N --> O[new Functionで<br>レンダリング関数生成]
    O --> P[_rc=true設定]
    P --> Q[キャッシュに保存]
    Q --> R[レンダリング関数返却]
    M --> R
```

## ビジネスルール

### 業務ルール

| ルールNo | ルール名 | 内容 | 適用条件 |
|---------|---------|------|---------|
| BR-72-01 | コンパイルキャッシュ | 同一テンプレート・オプションのコンパイル結果はgenCacheKeyで生成したキーでキャッシュされ、2回目以降は再コンパイルされない | compileToFunction呼び出し時 |
| BR-72-02 | ランタイムコンパイルマーカー | コンパイル生成されたレンダリング関数には`_rc = true`フラグが付与される | compileToFunction実行完了時 |
| BR-72-03 | グローバルビルドの関数生成 | __GLOBAL__フラグが有効な場合、new Function(code)()でレンダリング関数を生成（Vueパラメータ不要） | グローバル(IIFE)ビルド時 |
| BR-72-04 | 非グローバルビルドの関数生成 | __GLOBAL__フラグが無効な場合、new Function('Vue', code)(runtimeDom)で生成（runtimeDomオブジェクトを注入） | ESM/CJSビルド時 |
| BR-72-05 | 静的ホイスティング | compileToFunctionではhoistStatic: trueがデフォルトで有効化される | 常時 |
| BR-72-06 | カスタム要素自動検出 | isCustomElementが未設定の場合、customElements.get(tag)による自動検出が設定される | customElementsが利用可能な環境 |
| BR-72-07 | ビルドフォーマット分岐 | エントリーファイルはフォーマット名末尾が'runtime'の場合はsrc/runtime.ts、それ以外はsrc/index.tsが使用される | rollupビルド時 |
| BR-72-08 | 環境別CJS切り替え | CJSエントリー(index.js)はNODE_ENV環境変数でdev/prodビルドを切り替える | Node.js環境での読み込み時 |

### 計算ロジック

- キャッシュキー生成: `genCacheKey(template, options)` により、テンプレート文字列とオプションの組み合わせから一意なキーを算出
- 開発ビルド判定: `process.env.__DEV__ === 'false'` または出力ファイル名が `.prod.js` で終わる場合はプロダクションビルド

## データベース操作仕様

### 操作別データベース影響一覧

本機能はデータベースを使用しない。コンパイルキャッシュはインメモリのJavaScriptオブジェクト(`Object.create(null)`)で管理される。

## エラー処理

### エラーケース一覧

| エラーコード | エラー種別 | 発生条件 | 対処方法 |
|------------|----------|---------|---------|
| - | 警告（warn） | HTMLElement以外のnodeType無しオブジェクトがtemplateに渡された場合 | `invalid template option:` 警告メッセージ表示、NOOP関数を返却 |
| - | 警告（warn） | '#'セレクタで指定したDOM要素が見つからない場合 | `Template element not found or is empty:` 警告メッセージ表示、空テンプレートでコンパイル続行 |
| - | CompilerError | テンプレートコンパイルエラーが発生した場合 | `Template compilation error:` メッセージとコードフレーム（generateCodeFrame）を含む警告を表示 |
| - | 警告（warn） | ランタイムのみビルドでテンプレートのコンパイルが試行された場合 | `Runtime compilation is not supported in this build of Vue.` 警告とビルド切り替えの推奨メッセージを表示 |

### リトライ仕様

リトライは不要。コンパイルエラー時は警告を表示し、キャッシュには保存しない。

## トランザクション仕様

トランザクション概念は適用されない。コンパイルキャッシュへの書き込みは同期的に行われる。

## パフォーマンス要件

- コンパイル結果のキャッシュにより、同一テンプレートの再コンパイルを防止
- `hoistStatic: true` がデフォルト有効で、静的コンテンツのホイスティングによるレンダリングパフォーマンス最適化
- ランタイムのみビルド使用時はコンパイラコードが含まれないため、バンドルサイズが削減される
- プロダクションビルドではSWCによるミニファイとツリーシェイキングが適用される

## セキュリティ考慮事項

- **in-DOMテンプレートのリスク**: CSSセレクタ('#'始まり)でDOM要素からテンプレートを取得する場合、テンプレート内のJavaScript式が実行される可能性がある。ソースコード内に`__UNSAFE__`コメントで明記されており、サーバーレンダリングされたテンプレートにユーザーデータを含めないことが推奨される
- **new Functionの使用**: コンパイル結果のJavaScriptコード文字列から `new Function()` でレンダリング関数を生成するため、CSP（Content Security Policy）で `unsafe-eval` が禁止されている環境では動作しない。事前コンパイル（SFCコンパイラ）を使用することで回避可能
- **開発モード情報**: 開発ビルドでは使用中のビルドタイプに関する情報メッセージがコンソールに表示される。本番ビルドではこれらは除外される

## 備考

- `vue` パッケージはバージョン3.5.27として管理されている
- TypeScriptはオプショナルなpeerDependencyとして宣言されている
- ビルドフォーマットは7種類: esm-bundler, esm-bundler-runtime, cjs, global, global-runtime, esm-browser, esm-browser-runtime
- `vue/compiler-sfc` サブパスではTypeScript登録処理（`register-ts.js`）が自動実行される
- JSXランタイムは `vue/jsx-runtime` サブパスから利用可能で、TypeScriptの `jsxImportSource` 設定と連携する

---

## コードリーディングガイド

本機能を理解するために参照すべきファイルと、推奨する読み解き順序を以下に示す。

### 推奨読解順序

#### Step 1: データ構造を理解する

vueパッケージ自体は型定義を新たに追加しないが、依存パッケージの重要な型を把握する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 1-1 | package.json | `packages/vue/package.json` | exports設定で公開されるサブパスと各フォーマットの対応を理解する |

**読解のコツ**:
- **19-71行目**: `exports` フィールドがConditional Exportsを定義。`"."` がメインエントリー、`"./server-renderer"`, `"./compiler-sfc"`, `"./jsx-runtime"` がサブパスエントリー
- **24行目**: デフォルトのESMインポートは `dist/vue.runtime.esm-bundler.js`（ランタイムのみ）に解決される
- **73-83行目**: `buildOptions` でビルドフォーマット7種類を定義。`"name": "Vue"` はグローバルビルドの変数名

#### Step 2: フルビルドエントリーポイントを理解する

テンプレートのオンザフライコンパイルを提供するフルビルドの中核を理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 2-1 | index.ts | `packages/vue/src/index.ts` | compileToFunction関数の実装とregisterRuntimeCompilerの呼び出し |

**主要処理フロー**:
1. **1-3行目**: コメントで「ランタイム+コンパイラを含むフルビルド」であることを明示
2. **24-26行目**: `__DEV__` フラグが有効な場合に `initDev()` を呼び出し
3. **28行目**: `compileCache` を `Object.create(null)` で初期化。プロトタイプチェーンを持たない純粋なオブジェクトとしてキャッシュを管理
4. **30-33行目**: `compileToFunction` の関数シグネチャ。テンプレートは文字列またはHTMLElementを受け付ける
5. **34-41行目**: 入力の正規化。HTMLElementの場合はinnerHTMLを取得し、nodeTypeを持たない不正な入力には警告を出してNOOP関数を返す
6. **43-47行目**: `genCacheKey` でキャッシュキーを生成し、キャッシュヒット時は即座に返却
7. **49-59行目**: '#'で始まるテンプレートはCSSセレクタとして `document.querySelector` で解決。`__UNSAFE__` コメントでセキュリティリスクを明示
8. **61-68行目**: コンパイルオプションの構築。`hoistStatic: true` がデフォルト、開発モード時にonError/onWarnを設定
9. **70-72行目**: `customElements` APIが利用可能な場合、`isCustomElement` を自動設定
10. **74行目**: `compile(template, opts)` で `@vue/compiler-dom` のコンパイラを呼び出し
11. **94-96行目**: `__GLOBAL__` フラグに基づくレンダリング関数生成。グローバルビルドでは `new Function(code)()`、それ以外は `new Function('Vue', code)(runtimeDom)`
12. **99行目**: `render._rc = true` でランタイムコンパイル済みマーカーを設定
13. **101行目**: キャッシュに保存してレンダリング関数を返却
14. **104行目**: `registerRuntimeCompiler(compileToFunction)` でランタイムコアにコンパイラを登録

#### Step 3: ランタイムのみビルドを理解する

コンパイラを含まない軽量ビルドの挙動を理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 3-1 | runtime.ts | `packages/vue/src/runtime.ts` | ランタイムのみビルドのcompile関数（警告表示） |

**主要処理フロー**:
- **1-2行目**: コメントで「ランタイムのみ」であることを明示
- **10行目**: `@vue/runtime-dom` のすべてのAPIを再エクスポート
- **12-25行目**: `compile` 関数は空の実装で、呼び出された場合に`__DEV__`時のみ警告を表示。`__ESM_BUNDLER__`、`__ESM_BROWSER__`、`__GLOBAL__` フラグに応じて適切なビルドファイルへの切り替えを推奨

#### Step 4: 開発モード初期化を理解する

開発ビルド固有の初期化処理を理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 4-1 | dev.ts | `packages/vue/src/dev.ts` | 開発モード初期化関数 |

**主要処理フロー**:
- **3-13行目**: `initDev` 関数。`__BROWSER__` かつ非 `__ESM_BUNDLER__` ビルドの場合、開発ビルド使用の情報メッセージを表示
- **12行目**: `initCustomFormatter()` でVue DevToolsのカスタムフォーマッターを初期化

#### Step 5: サブパスエクスポートを理解する

`vue/compiler-sfc`、`vue/server-renderer`、`vue/jsx-runtime` の再エクスポート構造を理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 5-1 | compiler-sfc/index.js | `packages/vue/compiler-sfc/index.js` | @vue/compiler-sfcの再エクスポートとTypeScript登録 |
| 5-2 | compiler-sfc/register-ts.js | `packages/vue/compiler-sfc/register-ts.js` | TypeScript登録処理 |
| 5-3 | server-renderer/index.js | `packages/vue/server-renderer/index.js` | @vue/server-rendererの再エクスポート |
| 5-4 | jsx-runtime/index.js | `packages/vue/jsx-runtime/index.js` | JSXランタイム実装 |
| 5-5 | jsx-runtime/index.d.ts | `packages/vue/jsx-runtime/index.d.ts` | JSXランタイム型定義とJSX名前空間 |

**主要処理フロー**:
- **compiler-sfc/index.js**: `require('@vue/compiler-sfc')` で再エクスポートし、`register-ts.js` でTypeScript連携を自動実行
- **register-ts.js 1-3行目**: `@vue/compiler-sfc` の `registerTS` にTypeScriptのファクトリ関数を登録。require環境（Node.js）でのみ実行
- **jsx-runtime/index.js 3-9行目**: Vueの `h` 関数と `Fragment` を使ってReact JSXランタイム互換の `jsx`/`jsxs`/`jsxDEV` 関数を実装
- **jsx-runtime/index.d.ts 11-25行目**: JSX名前空間の型定義。`Element extends VNode`、`IntrinsicElements extends NativeElements` により型安全なJSXサポートを実現

#### Step 6: ビルド構成を理解する

Rollupによるビルドプロセスとフォーマット分岐を理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 6-1 | rollup.config.js | `rollup.config.js` | ビルド設定とフォーマット定義 |

**主要処理フロー**:
- **58-88行目**: 7種類の出力フォーマット定義（esm-bundler, esm-browser, cjs, global, esm-bundler-runtime, esm-browser-runtime, global-runtime）
- **159行目**: エントリーファイル分岐。フォーマット名が'runtime'で終わる場合は `src/runtime.ts`、それ以外は `src/index.ts`
- **170-218行目**: `resolveDefine` で環境フラグを設定。`__BROWSER__`, `__GLOBAL__`, `__ESM_BUNDLER__`, `__ESM_BROWSER__`, `__CJS__`, `__SSR__` 等
- **362-392行目**: `createMinifiedConfig` でSWCによるミニファイ設定

### プログラム呼び出し階層図

```
vue/src/index.ts (フルビルドエントリー)
    |
    +-- initDev() [dev.ts]
    |       +-- console.info() (開発ビルドメッセージ)
    |       +-- initCustomFormatter() [@vue/runtime-dom]
    |
    +-- compileToFunction()
    |       +-- isString() [@vue/shared]
    |       +-- genCacheKey() [@vue/shared]
    |       +-- document.querySelector() [ブラウザAPI]
    |       +-- compile() [@vue/compiler-dom]
    |       +-- generateCodeFrame() [@vue/shared]
    |       +-- new Function() [JavaScript組み込み]
    |
    +-- registerRuntimeCompiler() [@vue/runtime-core]
    |       +-- compile = compileToFunction
    |       +-- installWithProxy (Proxyハンドラ設定)
    |
    +-- export * from '@vue/runtime-dom'
            +-- ref, reactive, computed, watch, ...
            +-- createApp, render, h, ...
            +-- Transition, TransitionGroup, ...

vue/src/runtime.ts (ランタイムのみエントリー)
    |
    +-- initDev() [dev.ts]
    +-- export * from '@vue/runtime-dom'
    +-- compile() -> warn() (警告のみ)

vue/compiler-sfc/index.js (サブパス)
    +-- require('@vue/compiler-sfc')
    +-- register-ts.js -> registerTS()

vue/server-renderer/index.js (サブパス)
    +-- require('@vue/server-renderer')

vue/jsx-runtime/index.js (サブパス)
    +-- h() [@vue/runtime-dom]
    +-- Fragment [@vue/runtime-dom]
```

### データフロー図

```
[入力]                          [処理]                            [出力]

テンプレート文字列         -->  compileToFunction()          -->  RenderFunction
または HTMLElement              |                                  (レンダリング関数)
                                +-- キャッシュチェック
                                +-- compile() [compiler-dom]
                                +-- new Function()
                                +-- キャッシュ保存

コンポーネント定義         -->  registerRuntimeCompiler()    -->  ランタイムコアの
(templateオプション付き)        によりコンパイラ登録済み          内部compile変数に設定

package.json exports       -->  Node.js/バンドラーの          -->  適切なビルドファイル
                                条件付きエクスポート解決           (dev/prod, ESM/CJS)

JSX構文                    -->  jsx-runtime                  -->  h()関数呼び出し
(TypeScript/Babel)              jsx(type, props, key)             VNode生成
```

### 関連ファイル一覧

| ファイル | パス | 種別 | 役割 |
|---------|------|------|------|
| index.ts | `packages/vue/src/index.ts` | ソース | フルビルドエントリーポイント。compileToFunction定義、registerRuntimeCompiler実行 |
| runtime.ts | `packages/vue/src/runtime.ts` | ソース | ランタイムのみビルドエントリーポイント。compile警告関数定義 |
| dev.ts | `packages/vue/src/dev.ts` | ソース | 開発モード初期化。コンソールメッセージとカスタムフォーマッター初期化 |
| index.js | `packages/vue/index.js` | エントリー | CJS形式メインエントリー。NODE_ENVに応じたdev/prod切り替え |
| index.mjs | `packages/vue/index.mjs` | エントリー | ESM形式メインエントリー。index.jsを再エクスポート |
| package.json | `packages/vue/package.json` | 設定 | パッケージ定義。exports, buildOptions, 依存関係 |
| compiler-sfc/index.js | `packages/vue/compiler-sfc/index.js` | エントリー | @vue/compiler-sfc再エクスポートとTypeScript登録 |
| compiler-sfc/register-ts.js | `packages/vue/compiler-sfc/register-ts.js` | ソース | TypeScriptファクトリ関数の登録処理 |
| server-renderer/index.js | `packages/vue/server-renderer/index.js` | エントリー | @vue/server-renderer再エクスポート |
| jsx-runtime/index.js | `packages/vue/jsx-runtime/index.js` | ソース | React JSXランタイム互換の実装 |
| jsx-runtime/index.d.ts | `packages/vue/jsx-runtime/index.d.ts` | 型定義 | JSX名前空間の型定義 |
| jsx.d.ts | `packages/vue/jsx.d.ts` | 型定義 | JSXグローバル型定義 |
| rollup.config.js | `rollup.config.js` | 設定 | ビルド構成。フォーマット定義、環境フラグ設定、プラグイン構成 |
| component.ts | `packages/runtime-core/src/component.ts` | ソース(外部) | registerRuntimeCompiler関数の定義（974行目） |
