インポートメタ
`import.meta` を使用してコードの実行場所を理解する。
import.meta
オブジェクト
ESモジュールを使用すると、ESモジュールをインポートまたはコンパイルするコードからメタデータを取得できます。これは、import.meta
を通じて行われ、これはコードにこの情報を提供するオブジェクトです。Nuxtのドキュメント全体で、コードが現在クライアント側で実行されているかサーバー側で実行されているかを判断するために、既にこれを使用しているスニペットが表示される場合があります。
ランタイム(アプリ)プロパティ
これらの値は静的に挿入され、ランタイムコードのツリーシェイキングに使用できます。
プロパティ | 型 | 説明 |
---|---|---|
import.meta.client | boolean | クライアント側で評価されるときにtrue。 |
import.meta.browser | boolean | クライアント側で評価されるときにtrue。 |
import.meta.server | boolean | サーバー側で評価されるときにtrue。 |
import.meta.nitro | boolean | サーバー側で評価されるときにtrue。 |
import.meta.dev | boolean | Nuxt開発サーバーを実行している場合にtrue。 |
import.meta.test | boolean | テストコンテキストで実行されている場合にtrue。 |
import.meta.prerender | boolean | ビルドのプリレンダリング段階でサーバー上でHTMLをレンダリングしている場合にtrue。 |
ビルダープロパティ
これらの値は、モジュールとnuxt.config
の両方で使用できます。
プロパティ | 型 | 説明 |
---|---|---|
import.meta.env | object | process.env と等しい |
import.meta.url | string | 現在のファイルの解決可能なパス。 |
サンプル
モジュール内でファイルの解決に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')
})
}
})
⬅️ ライフサイクルフック ➡️ Nuxt設定