このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "intlayer()にバンドル。ドキュメント初期化"v9.0.02026/6/25
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
intlayerCompiler
intlayerCompilerは、コンポーネントのソースファイルをスキャンしてインラインのIntlayerコンテンツ宣言(別個の.content.tsファイルではなく、コンポーネント内に直接定義されたコンテンツ)を探し、変換(transform)フェーズ中にそれらを辞書JSONファイルに書き込むViteプラグインです。
Intlayer v9以降、compiler.enabledがtrueかつcompiler.outputがIntlayer設定で指定されている場合、intlayerCompilerはメインのintlayer()プラグインに自動的に組み込まれます。コンパイラ固有の設定を完全に制御したい場合にのみ、個別に登録する必要があります。
使用方法
intlayer()の一部として(推奨、v9+)
Intlayer設定でコンパイラを有効にします:
コードをクリップボードにコピー
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // 抽出された辞書が書き込まれる場所 },});次に、追加の登録なしで標準プラグインを使用します:
コードをクリップボードにコピー
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});スタンドアロン(必要な場合)
コードをクリップボードにコピー
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});オプション
コードをクリップボードにコピー
import type { IntlayerCompilerOptions } from "vite-intlayer";テーブルをモーダルで開き、すべてのデータを明確に表示
| オプション | 型 | 説明 |
|---|---|---|
configOptions | GetConfigurationOptions | getConfiguration()に転送されるIntlayer設定のオーバーライド。 |
compilerConfig | Partial<CompilerConfig> | コンパイラ固有の設定セクションに対するオーバーライド(例:enabled、output、filesList)。 |
例
コードをクリップボードにコピー
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});動作原理
変換(Transform)フェーズ
compiler.filesListに一致するすべてのソースファイルに対して、コンパイラプラグインは以下を実行します:
- ファイルコンテンツを
@intlayer/babelのextractContentに渡します。 - 検出された各宣言に対して
onExtractを呼び出し、結果の辞書JSONをcompiler.outputに書き込みます。 - インライン宣言が標準の
useIntlayer('key')/getIntlayer('key')呼び出しに置き換えられた、変換後のソースコードを返します。
サポートされているファイルタイプ:.ts、.tsx、.js、.jsx、.vue、.svelte、.astro。
HMR(ホットモジュールリプレイスメント)
開発モードでコンポーネントファイルが保存されると、コンパイラは以下を実行します:
- Viteの
handleHotUpdateフックを介してファイルの変更を検知します。 - 更新されたファイルからコンテンツを再抽出します。
- 更新された辞書JSONを書き込みます。
- ページのフルリロードをトリガーします(
server.ws.send({ type: 'full-reload' }))。
500ミリ秒のデバウンス(遅延)により、辞書の書き込み自体(これもファイル変更イベントをトリガーします)が無限の再抽出ループを引き起こすのを防ぎます。
重複排除(Deduplication)
intlayerCompilerは、他のバンドルされたプラグインと同じcreatePrimaryInstanceGuard重複排除メカニズムを使用します。intlayer()(コンパイラを内包)と手動のintlayerCompiler()呼び出しの両方が存在する場合、最初に登録されたインスタンスのみが実行され、辞書が二重に書き込まれることはありません。