Import meta
使用 `import.meta` 了解代码的运行位置。
import.meta
对象
通过 ES 模块,您可以从导入或编译 ES 模块的代码中获取一些元数据。这是通过 import.meta
完成的,它是一个为您的代码提供此信息的对象。在整个 Nuxt 文档中,您可能会看到一些代码片段已经使用它来确定代码当前是在客户端还是服务器端运行。
运行时 (App) 属性
这些值是静态注入的,可用于摇树优化运行时代码。
属性 | 类型 | 描述 |
---|---|---|
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')
})
}
})