異なる配布ファイル
npm パッケージの dist/ ディレクトリ には、Vue I18n のさまざまなビルドがあります。ここでは、ユースケースに応じてどの dist ファイルを使用すべきかの概要を説明します。
CDN またはバンドラなし
vue-i18n(.runtime).global(.prod).js:- ブラウザで
<script src="...">を介して直接使用する場合。VueI18nグローバルを公開します - ブラウザ内メッセージフォーマットコンパイル:
vue-i18n.global.jsは、コンパイラとランタイムの両方を含む「完全な」ビルドであるため、メッセージフォーマットのオンザフライコンパイルをサポートしますvue-i18n.runtime.global.jsはランタイムのみを含み、ビルドステップ中にメッセージフォーマットをプリコンパイルする必要があります
- すべての Vue I18n コア内部パッケージをインライン化します。つまり、他のファイルへの依存関係がない単一のファイルです。これは、同じコードインスタンスを取得するために、必ず このファイルからすべてをインポートし、このファイルのみからインポートする必要があることを意味します
- ハードコードされた prod/dev ブランチが含まれており、prod ビルドは事前に縮小されています。本番環境には
*.prod.jsファイルを使用してください
- ブラウザで
vue-i18n(.runtime).esm-browser(.prod).js:- ネイティブ ES モジュールインポートを介した使用(ブラウザでは
<script type="module">を介して) - グローバルビルドと同じランタイムコンパイル、依存関係のインライン化、およびハードコードされた prod/dev 動作を共有します
- ネイティブ ES モジュールインポートを介した使用(ブラウザでは
バンドラを使用する場合
vue-i18n(.runtime).esm-bundler.js:webpack、rollup、parcelなどのバンドラで使用する場合process.env.NODE_ENVガードを使用して prod/dev ブランチを残します(バンドラによって置換される必要があります)- 縮小されたビルドを出荷しません(バンドル後に残りのコードと一緒に実行されます)
- 依存関係をインポートします(例:
@intlify/core-base、@intlify/message-compiler)- インポートされた依存関係も
esm-bundlerビルドであり、順番にそれらの依存関係をインポートします(例:@intlify/message-compilerは@intlify/sharedをインポートします) - これは、これらの依存関係の異なるインスタンスで終わることなく、これらの依存関係を個別にインストール/インポート できる ことを意味しますが、それらすべてが同じバージョンに解決されることを確認する必要があります
- インポートされた依存関係も
- ブラウザ内ロケールメッセージコンパイル:
vue-i18n.runtime.esm-bundler.jsはランタイムのみであり、すべてのロケールメッセージをプリコンパイルする必要があります。バンドラを使用する場合、テンプレートは通常プリコンパイルされるため(例:*.jsonファイル内)、これはバンドラのデフォルトエントリです(package.jsonのmoduleフィールドを介して)vue-i18n.esm-bundler.js(デフォルト): ランタイムコンパイラが含まれています。バンドラを使用しているが、ロケールメッセージのコンパイル(例:インライン JavaScript 文字列を介したテンプレート)が必要な場合は、これを使用します。このビルドを使用するには、インポートステートメントを次のように変更します:import { createI18n } from "vue-i18n/dist/vue-i18n.esm-bundler.js";
NOTE
vue-i18n.runtime.esm-bundler.js を使用する場合、すべてのロケールメッセージをプリコンパイルする必要があります。これは、.json (.json5) または .yaml、i18n カスタムブロックを使用して i18n リソースを管理することで実行できます。したがって、バンドラと以下のローダー/プラグインを使用して、すべてのロケールメッセージをプリコンパイルすることになります。
Node.js (サーバーサイド) 用
vue-i18n(.runtime).node.js:- Node.js での ES モジュール使用法
importを介して Node.js で使用する場合- dev/prod ファイルは事前にビルドされていますが、
process.env.NODE_ENVに基づいて適切なファイルが自動的に要求されます - このモジュールは
vue-i18n(.runtime).jsのプロキシモジュールですvue-i18n.runtime.node.js: ランタイムのみです。vue-i18n.node.js: ランタイムコンパイラが含まれています。 </toolcall_result>