Import meta
了解您的程式碼使用 `import.meta` 在何處執行。
import.meta
物件
使用 ES 模組,您可以從導入或編譯 ES 模組的程式碼中取得一些中繼資料。這是透過 import.meta
完成的,它是一個物件,可為您的程式碼提供此資訊。在整個 Nuxt 文件中,您可能會看到已經使用此程式碼片段來判斷程式碼目前是在客戶端還是在伺服器端執行的。
執行階段 (App) 屬性
這些值是靜態注入的,可用於 tree-shaking 您的執行階段程式碼。
屬性 | 類型 | 描述 |
---|---|---|
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')
})
}
})