Import meta
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'
// 現在のファイルから相対的に解決
const resolver = createResolver(import.meta.url)
export default defineNuxtModule({
meta: { name: 'myModule' },
setup() {
addComponent({
name: 'MyModuleComponent',
// '/modules/my-module/components/MyModuleComponent.vue' に解決される
filePath: resolver.resolve('./components/MyModuleComponent.vue')
})
}
})
※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/api/advanced/import-meta