nuxt logo

文档翻译(非官方)

Nuxt.js
Version:v3.17

Import meta

使用 import.meta 了解代码的运行环境。

import.meta 对象

通过 ES 模块,你可以从导入或编译你的 ES 模块的代码中获取一些元数据。这是通过 import.meta 完成的,它是一个为你的代码提供这些信息的对象。在 Nuxt 文档中,你可能会看到使用它的代码片段,以确定代码当前是在客户端还是服务器端运行。

另请参阅 developer.mozilla.org > en-US > docs > Web > JavaScript > Reference > Operators > import.meta

运行时(应用)属性

这些值是静态注入的,可以用于对运行时代码进行 tree-shaking。

属性类型描述
import.meta.clientboolean在客户端评估时为真。
import.meta.browserboolean在客户端评估时为真。
import.meta.serverboolean在服务器端评估时为真。
import.meta.nitroboolean在服务器端评估时为真。
import.meta.devboolean在运行 Nuxt 开发服务器时为真。
import.meta.testboolean在测试环境中运行时为真。
import.meta.prerenderboolean在构建的预渲染阶段在服务器上渲染 HTML 时为真。

构建器属性

这些值在模块和你的 nuxt.config 中都可用。

属性类型描述
import.meta.envobject等同于 process.env
import.meta.urlstring当前文件的可解析路径。

示例

使用 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')
    })
  }
})