このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "ドキュメント初期化"v9.0.02026/6/25
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
intlayerMinify
intlayerMinifyは、本番ビルド(production build)時にコンパイルされた辞書JSONファイルを圧縮するViteプラグインです。不要な空白をすべて取り除き、intlayerPruneと組み合わせることで、コンテンツフィールド名を短いアルファベットのエイリアス(a、b、c、…)にオプションで変更し、バンドルサイズをさらに削減します。
intlayer()を使用する場合、このプラグインはすでに自動的に含まれ、設定されています。プラグインのスタックをご自身で構成する場合にのみ、手動で登録する必要があります。
使用方法
コードをクリップボードにコピー
有効化の条件
intlayerMinifyは、以下の3つの条件がすべて満たされている場合にのみ有効になります:
- Viteコマンドが
buildである(serve/ devではない)。 build.optimizeがtrueである(またはundefinedであり、ビルド時のデフォルトであるtrueになる)。- Intlayer設定で
build.minifyがtrueである。
editor.enabled が true の場合、プラグインは引き続き実行されますが、フィールドのリネームはスキップされます。リネームはインタープリタが辿るコンテンツキーを書き換えるため、ビジュアルエディタが受け取る keyPath が、編集対象であるマージ前の辞書と一致しなくなってしまいます。空白の圧縮とトップレベルのメタデータ削除は引き続き有効です。
圧縮される対象
プラグインは、2つの辞書の場所(intlayer.systemから解決される場所)をターゲットにします:
dictionariesDir— 静的な全言語共通の辞書(例:.intlayer/dictionaries/*.json)dynamicDictionariesDir— 言語ごとの動的な辞書
フェッチモード辞書(fetchDictionariesDir)は、実行時に元のフィールド名を使用してリモートAPIから提供されるため、決して圧縮されません。フィールド名を変更すると、サーバーの応答とクライアント側のプロパティアクセスとの間に不一致が生じるためです。
フィールド名の難読化(プロパティの圧縮)
intlayerPruneがコードベースを分析し、pruneContext.dictionaryKeyToFieldRenameMapにデータを入力すると、intlayerMinifyはコンテンツフィールド名を短いエイリアスに変更します。例えば:
コードをクリップボードにコピー
対応するソースファイルのプロパティアクセスは、intlayerOptimize内のBabelパスによって変更されるため、実行時の動作は変わりません。
Intlayerの内部フィールド(nodeType、translationなど)の名前が変更されることはありません。
エッジケースの辞書
pruneContext.dictionariesWithEdgeCasesでフラグが立てられた辞書(クリーンアップ(prune)フェーズで検出された構造的な異常)は、破損したデータを配信するのを防ぐために完全にスキップされ、圧縮も難読化もされません。
修飾子グループ(コレクション / バリアント / メタレコード)
qualifierTypes配列を持つ辞書(コレクション、バリアント、メタレコード)について、プラグインはqualifierTypes配列とmetaサイドマップをそのまま保持します。contentエントリのフィールド名のみが難読化されます。実行時のセレクターマッチングに使用される複合キーが変更されることはありません。
