メタのインポート
import.meta を使用して、コードがどこで実行されているかを把握します。import.meta オブジェクト
ESモジュールでは、ESモジュールをインポートまたはコンパイルするコードからいくつかのメタデータを取得できます。これは import.meta を通じて行われます。これは、この情報をコードに提供するオブジェクトです。Nuxtのドキュメント全体で、コードが現在クライアント側またはサーバー側のどちらで実行されているかを判断するために、これを使用するスニペットをすでに目にしているかもしれません。
ランタイム(アプリ)プロパティ
これらの値は静的に挿入され、ランタイムコードのツリーシェイキングに使用できます。
| プロパティ | タイプ | 説明 |
|---|---|---|
import.meta.client | ブール値 | クライアント側で評価された場合に True。 |
import.meta.browser | ブール値 | クライアント側で評価された場合に True。 |
import.meta.server | ブール値 | サーバー側で評価された場合に True。 |
import.meta.nitro | ブール値 | サーバー側で評価された場合に True。 |
import.meta.dev | ブール値 | Nuxt開発サーバーを実行している場合に True。 |
import.meta.test | ブール値 | テストコンテキストで実行されている場合に True。 |
import.meta.prerender | ブール値 | ビルドのプリレンダリング段階でサーバー上でHTMLをレンダリングしている場合に True。 |
ビルダープロパティ
これらの値は、モジュールと nuxt.config の両方で利用できます。
| プロパティ | タイプ | 説明 |
|---|---|---|
import.meta.env | オブジェクト | process.env に等しい。 |
import.meta.url | 文字列 | 現在のファイルの解決可能なパス。 |
例
モジュール内のファイルを解決するために import.meta.url を使用する
modules/my-module/index.ts
import { createResolver } from 'nuxt/kit'
// Resolve relative from the current file
const resolver = createResolver(import.meta.url)
export default defineNuxtModule({
meta: { name: 'myModule' },
setup () {
addComponent({
name: 'MyModuleComponent',
// Resolves to '/modules/my-module/components/MyModuleComponent.vue'
filePath: resolver.resolve('./components/MyModuleComponent.vue'),
})
},
})